阻止JavaScript承诺传播
想象一下,我有一个像下面这样的承诺链。如果调用了func2,我希望避免同时调用func3或func4阻止JavaScript承诺传播,javascript,angularjs,promise,angular-promise,Javascript,Angularjs,Promise,Angular Promise,想象一下,我有一个像下面这样的承诺链。如果调用了func2,我希望避免同时调用func3或func4 AsyncFunction() .then(func1, func2) .then(func3, func4) 现在,如果我在func2中抛出错误,就会调用func4。如果我在func2中返回一个值,则似乎调用了func3 我使用的是$q 对分支控制流使用嵌套。在您的情况下,它将如下所示: AsyncFunction().then(function(res) { return func
AsyncFunction()
.then(func1, func2)
.then(func3, func4)
现在,如果我在func2中抛出错误,就会调用func4。如果我在func2中返回一个值,则似乎调用了func3
我使用的是$q 对分支控制流使用嵌套。在您的情况下,它将如下所示:
AsyncFunction().then(function(res) {
return func1(res).then(func3, func4);
}, func2);
谢谢你的回答。你知道有没有一种不用嵌套就能解决这个问题的方法?在某些情况下,这可能会变得相当混乱。在结构化编程中,你总是使用嵌套来做分支之类的事情——考虑一个简单的<代码>如果语句。如果事情变得太复杂,将它们转移到自己的功能。