我试图想出一个好办法,说:“做所有这些事情,但保释在其中的任何失败的情况下”停止一个AngularJS承诺链
我有什么权利现在:
var defer = $q.defer();
this
.load(thingy) // returns a promise
.then(this.doSomethingA.bind(this))
.then(this.doSomethingB.bind(this))
.then(this.doSomethingC.bind(this))
.then(this.doSomethingD.bind(this))
.then(function(){
defer.resolve(this);
});
;
return defer.promise;
我最终想要以某种方式捕捉该链上的任何错误,以便我可以将它传递给上面的defer
承诺。我并不特别在乎语法是否与上面的类似。
或即使任何人都可以告诉我如何停止上述链。
@ user2246674 - 拒绝它似乎并没有停止链,但下一个只是继续 –
不知道我在想什么.. – user2246674
这是[deferred antipattern](http: //stackoverflow.com/q/23803743/1048572)! (推迟),只是'返回'this.load(...)。然后(A)。然后(B)。然后(C)。然后(D);'链! – Bergi