then()

このエントリーをはてなブックマークに追加

deferred.then()はDeferrdオブジェクトに、コールバック関数をまとめて指定できるメソッドです。

thenの第一引数にコールバック関数を指定することでdeferrd.done()のショートハンドとして利用できます。

var def = $.Deferred();
def.then(function(){
  alert("ok")
});
def.resolve();

sample

また、コールバック関数を配列で渡すことも可能です。(jQuery 1.8.xでは配列での受け渡しは動作しません)

var def = $.Deferred();
def.then([function(){
  alert("ok1")
},function(){
  alert("ok2")
}]);
def.resolve();

sample

第2引数にはdeferrd.fail()のショートハンドとして利用できます。

var def = $.Deferred();
def.then(function(){
  alert("ok")
},function(){
  alert("ng")
});
def.reject();

sample

第3引数にはdeferred.progress()のショートハンドとして利用できます。

var def = $.Deferred();
def.then(function(){
  alert("ok")
},function(){
  alert("ng")
},function(){
  alert("wait")
});
def.notify();

sample

jQuery 1.5.0での追加/変更

deferred.then()はjQuery1.5.0で追加されたメソッドです

jQuery 1.7.0での追加/変更

第3引数にはdeferred.progress()のショートハンドが追加されました

jQuery 1.8.0での追加/変更

コールバック関数の配列での引き渡しが動作しません。公式によるアナウンスがない為一時的なバグの可能性があります

参考URL

deferred.then() – jQuery API

登録日 : 2012年12月23日 最終更新日 : 2012年12月23日

同じカテゴリー(Deferred)のエントリー

検索

スポンサードリンク

バージョン

リファレンス