then()
deferred.then()はDeferrdオブジェクトに、コールバック関数をまとめて指定できるメソッドです。
thenの第一引数にコールバック関数を指定することでdeferrd.done()のショートハンドとして利用できます。
var def = $.Deferred();
def.then(function(){
alert("ok")
});
def.resolve();
また、コールバック関数を配列で渡すことも可能です。(jQuery 1.8.xでは配列での受け渡しは動作しません)
var def = $.Deferred();
def.then([function(){
alert("ok1")
},function(){
alert("ok2")
}]);
def.resolve();
第2引数にはdeferrd.fail()のショートハンドとして利用できます。
var def = $.Deferred();
def.then(function(){
alert("ok")
},function(){
alert("ng")
});
def.reject();
第3引数にはdeferred.progress()のショートハンドとして利用できます。
var def = $.Deferred();
def.then(function(){
alert("ok")
},function(){
alert("ng")
},function(){
alert("wait")
});
def.notify();
jQuery 1.5.0での追加/変更deferred.then()はjQuery1.5.0で追加されたメソッドです
jQuery 1.7.0での追加/変更第3引数にはdeferred.progress()のショートハンドが追加されました
jQuery 1.8.0での追加/変更コールバック関数の配列での引き渡しが動作しません。公式によるアナウンスがない為一時的なバグの可能性があります
参考URL
登録日 : 2012年12月23日 最終更新日 : 2012年12月23日