deferred.then()【《Deferred 成功処理・失敗処理・状態通知》ハンドラ追加】 1.5 / 1.7 / 1.8 (1.8)

メモ

構文

説明構文戻り値
《Deferred 成功処理・失敗処理・状態通知》

ハンドラ追加
deferred.then( doneFilter [, failFilter ] [, progressFilter ] )  1.8

Function() doneFilter:成功処理ハンドラ (null:省略)
Function() failFilter:失敗処理ハンドラ (null:省略)
Function() progressFilter:状態通知ハンドラ (null:省略)
引数説明
任意
戻り値説明
任意新規生成したDeferred オブジェクト・Promise オブジェクト等返却で状態変更可
Promise
deferred.then( doneCallbacks, failCallbacks )  1.51.8

Function()  | Array  Function() doneCallbacks:成功処理ハンドラ
Function()  | Array Function()  failCallbacks:失敗処理ハンドラ
引数説明
任意
戻り値説明
任意新規生成したDeferred オブジェクト・Promise オブジェクト等返却で状態変更可
Promise
deferred.then( doneCallbacks, failCallbacks [, progressCallbacks ] )  1.71.8

Function()  | Array Function()  doneCallbacks:成功処理ハンドラ
Function()  | Array Function()  failCallbacks:失敗処理ハンドラ
Function()  | Array Function()  progressCallbacks:状態通知ハンドラ
引数説明
任意
戻り値説明
任意新規生成したDeferred オブジェクト・Promise オブジェクト等返却で状態変更可
Promise

関連

<p id="output1" style="border:1px black solid; padding:1px 5px;">【状態変更なし】</p>
<p id="output2" style="border:1px black solid; padding:1px 5px;">【状態変更あり】</p>

<script>
var doneCallbackA1 = function() { $("#output1").append("<br>done (A1)"); };
var doneCallbackA2 = function() { $("#output1").append("<br>done (A2)"); };
var failCallbackA = function() { $("#output1").append("<br>fail (A)"); };

var doneCallbackB1 = function() {
  $("#output2").append("<br>done (B1)");
  var dfNew = $.Deferred();
  dfNew.reject();
  return dfNew;
};
var doneCallbackB2 = function() { $("#output2").append("<br>done (B2)"); };
var failCallbackB = function() { $("#output2").append("<br>fail (B)"); };

// 状態変更なし
var df1 = $.Deferred();
$.when(df1)
  .then(doneCallbackA1)
  .then(doneCallbackA2)
  .catch(failCallbackA);
df1.resolve();

// 状態変更あり
var df2 = $.Deferred();
$.when(df2)
  .then(doneCallbackB1)
  .then(doneCallbackB2)
  .catch(failCallbackB);
df2.resolve();
</script>

【状態変更なし】

【状態変更あり】