以下の内容はhttps://anton0825.hatenablog.com/entry/2015/08/12/000000より取得しました。


jQueryPromiseは一度rejectされるとその後のすべてのfailが呼ばれる

以下の例だと#1,#2の両方が呼ばれる。

var firstDeferred = $.Deferred(), secondDeferred = $.Deferred();

firstDeferred.promise()
.fail(function (error) {
  // #1
})
.then(function () {
    return secondDeferred.promise();
})
.fail(function (error) {
  // #2
});

firstDeferred.reject('first deferred object');

途中でrejectが伝わるのを防ぎたい場合はthenに関数を渡す。then( doneFilter , failFilter )となっているので、第二引数に関数を渡すとそこまででfailの実行は止まる。

var firstDeferred  = $.Deferred(),
    secondDeferred = $.Deferred();

firstDeferred.promise()
.fail(function (error) {
    console.log(error);
})
.then(null, function () { // Notice the null
    return secondDeferred.promise();
})
.fail(function (error) {
    console.log(error);
});

firstDeferred.reject('first deferred object');
secondDeferred.reject('second deferred object');

↑を実行すると↓のログが出る。

first deferred object
second deferred object 

参考:




以上の内容はhttps://anton0825.hatenablog.com/entry/2015/08/12/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14