Kevin B のコードに基づいて、マスター Deferred オブジェクトを使用するアプローチを次に示します。
var masterDeferred = new $.Deferred(),
reqOne = $.post("foo.php"),
reqTwo = $.post("bar.php");
masterDeferred.done(function() {
// do stuff
});
reqOne.done(function() {
masterDeferred.resolve();
});
reqTwo.done(function() {
masterDeferred.resolve();
});
masterDeferred を解決する最も簡単な形式は次のようになると言っているのは正しいと思います。
reqOne.done(masterDeferred.resolve);
reqTwo.done(masterDeferred.resolve);
.resolve()
ただし、個別の完了関数を使用すると、内部的に分岐して.reject()
、、、.resolveWith(...)
または必要に応じて、一般的な形式のコールバックと.rejectWith(...)
一緒に呼び出すことができます。masterDeferred
masterDeferred.then( doneCallbacks, failCallbacks );