javascript - 如何破坏 Promises/A 的序列处理程序?

标签 javascript asynchronous promise

如何打破 Promises/A 的处理程序顺序?

例如

如果我们有序列:

method1().then(method2())
         .then(method3(), errorHandler3());

method2() 中,我们决定打乱顺序,不再继续 method3()errorHandler3()。我们应该怎么做?

最佳答案

您可以返回一个永远不会从 method2() 产生的函数中解析的 promise 。

但是,这没有多大意义,因为“破坏序列”实际上意味着进入错误状态,应该可以处理。

也许你更想

method1().then(function method2(res) {
    // do something
    if (/* you want to break*/)
        throw new Error("reason for breaking");
    else
        return when(/* what is done */).then(method3(), errorHandler3());
});

关于javascript - 如何破坏 Promises/A 的序列处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16902339/

相关文章:

javascript - 将 mongoose 查询(promise)添加到数组并执行并行操作

javascript - Firefox 附加组件中使用 XMLHttpRequest 拒绝 Referer、Connection 和 Accept-Encoding

c# - 无法在 ASP.NET Webforms 中运行异步任务

ios - 带有核心数据的异步图像下载

.net - 如何使用 WCF 的 ChannelFactory<T> 实现客户端异步调用?

javascript - 如何将同步结果返回给异步函数调用

javascript - 如何在 Angular.js 中链接 .then 函数和回调成功函数

javascript - 搜索 JSON 数组中的项目

javascript - 将 jQuery 数据表 aLengthMenu 显示为 <a> 链接而不是 <select> 下拉列表

javascript - 如何在 Jquery 数组中手动​​添加一行