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()に等しい.
例:
 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("   !"); });