我試圖想出一個好辦法,說:「做所有這些事情,但保釋在其中的任何失敗的情況下」停止一個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