$q.promise
を使用すると、エラーコールバックとcatch
関数の使用に違いがある場合は誰かに教えてください。プロミス - エラーコールバック対キャッチ
など。コードの2つのスニペットは機能的に同等ですか?
function doSomething0() {
var deferred = $q.defer();
...
return deferred.promise;
}
doSomething0()
.then(doSomething1)
.then(doSomething2)
.then(doSomething3)
.catch(function (err) {
// do something with `err`
});
対
function doSomething0() {
var deferred = $q.defer();
...
return deferred.promise;
}
function errorHandler(err) {
// do something with `err`
}
doSomething0()
.then(doSomething1, errorHandler)
.then(doSomething2, errorHandler)
.then(doSomething3, errorHandler);
もしそうなら、なぜ第二1を使うのか?それははるかに醜く見えると私の意見では、より多くのコードの重複につながる?
番目のバージョンは、あなたが継続することを決議状態に戻す約束を持参することができますとにかくエラーや拒否された約束以外のものを返すことによって、 –
エラーハンドラが拒否された約束をスローまたは返す場合、それは3回呼び出されます。 –