【问题标题】:Stopping JavaScript Promises from Propagating阻止 JavaScript Promise 传播
【发布时间】:2014-11-30 22:03:18
【问题描述】:

想象一下,我有一个如下所示的承诺链。如果调用 func2 ,我想完全避免调用 func3 或 func4 。

AsyncFunction()
.then(func1, func2)
.then(func3, func4)

目前,如果我在 func2 中抛出错误,则会调用 func4。如果我在 func2 中返回一个值,则似乎调用了 func3。

我正在使用 Angular $q。

【问题讨论】:

    标签: javascript angularjs promise angular-promise


    【解决方案1】:

    使用嵌套来分支控制流。在你的情况下,它看起来像这样:

    AsyncFunction().then(function(res) {
        return func1(res).then(func3, func4);
    }, func2);
    

    【讨论】:

    • 感谢您的回答。你知道是否有办法在不嵌套的情况下解决这个问题?看起来这在某些情况下可能会变得非常混乱。
    • 没有。在结构化编程中,您总是将嵌套用于分支之类的事情——考虑一个简单的if 语句。如果事情变得过于复杂,请将它们转移到自己的功能中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多