jqueryのdeferredオブジェクト
1598 ワード
1.$.Deferredはdeferredオブジェクトを生成します. //var dtd = $.Deferred;
2.dtd.done()は、操作が成功したときのコールバック関数を指定します.
3.dtd.fail()は、操作が成功したときのコールバック関数を指定します.
4.dtd.resolve()dtdオブジェクトの動作状態を手動で「完了」に変更し、done()メソッドを直ちにトリガーします.
5.dtd.reject()この方法はdtd.resolve()は正反対で、呼び出し後にdtdオブジェクトの実行状態を「失敗」に変更し、fail()メソッドを直ちにトリガーします.
6.$.when()は、複数の操作にコールバック関数を指定します.
7.dtd.when()は時々手間を省くためにdone()とfail()を合わせて書くことができますが、これがthen()メソッドです.
$.when($.ajax( "/main.php"))
.then(successFunc, failureFunc );
then()に2つのパラメータがある場合、最初のパラメータはdone()メソッドのコールバック関数であり、2番目のパラメータはfail()メソッドのコールバックメソッドである.then()にパラメータが1つしかない場合、done()に等しい.
例:
2.dtd.done()は、操作が成功したときのコールバック関数を指定します.
3.dtd.fail()は、操作が成功したときのコールバック関数を指定します.
4.dtd.resolve()dtdオブジェクトの動作状態を手動で「完了」に変更し、done()メソッドを直ちにトリガーします.
5.dtd.reject()この方法はdtd.resolve()は正反対で、呼び出し後にdtdオブジェクトの実行状態を「失敗」に変更し、fail()メソッドを直ちにトリガーします.
6.$.when()は、複数の操作にコールバック関数を指定します.
7.dtd.when()は時々手間を省くためにdone()とfail()を合わせて書くことができますが、これがthen()メソッドです.
$.when($.ajax( "/main.php"))
.then(successFunc, failureFunc );
then()に2つのパラメータがある場合、最初のパラメータはdone()メソッドのコールバック関数であり、2番目のパラメータはfail()メソッドのコールバックメソッドである.then()にパラメータが1つしかない場合、done()に等しい.
例:
1 var wait = function(dtd){
2 var dtd = $.Deferred(); // , Deferred
3 var tasks = function(){
4 alert(" !");
5 dtd.resolve(); // Deferred
6 };
7
8 setTimeout(tasks,5000);
9 return dtd.promise(); // promise
10 };
11 $.when(wait())
12 .done(function(){ alert(" , !"); })
13 .fail(function(){ alert(" !"); });