« 非同期ループ処理 (1) | 非同期ループ処理 (3) » |
非同期ループ処理 (2)
開始処理~処理~終了処理という形で見やすく切り分けた方法。
var simpleAsyncProcessor = { _array : [], start : function(aArray) { // 開始処理 dump("start "); // 初期化 this._array = aArray; this._process(); }, _process : function() { var elt = this._array.shift(); if ( !elt ) { simpleAsyncProcessor._finish(); return; } // 処理 dump("processing... " + elt + " "); // 次の処理へ setTimeout(function(){ simpleAsyncProcessor._process(); }, 500); }, _finish : function() { // 終了処理 dump("finish "); }, }; simpleAsyncProcessor.start(['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']);