Deferredの忘備録

https://msitter29.hatenablog.com/entry/2016/04/15/200058

 

非同期タスク
 ->A実行
  -> A完了
   -> B実行
    -> B完了
     -> C実行
      -> C完了
       -> 全部終わったら処理
ということがしたい場合の例。

 

var promise = $.Deferred().resolve().promise();
for (var i = 0; i <= max; i++) {
promise = promise.then ( (function(num) { return function() {
def = $.Deferred();
 
非同期関数(num);←★処理が終わるとdef.resolve()を返すようにしておく
 
return def.promise();
};})(i));
}
 
promise.then(function(){
//forループが終わった後に実行される
});

 

以上