« 非同期ループ処理 (2) | 非同期ループ処理 (4) - 進捗表示1 » |
非同期ループ処理 (3)
非同期ループ処理 (2) とあまり変わらないが、次の処理へ進む部分を _next として切り分けており、より見やすくなっている。
var asyncProcessor = { _array : [], start : function(aArray) { // 開始処理 dump("start "); // 初期化 this._array = aArray; this._next(); }, _next : function() { var elt = this._array.shift(); if ( elt ) { setTimeout(function(){ asyncProcessor._process(elt); }, 500); } else { setTimeout(function(){ asyncProcessor._finish(); }, 500); } }, _process : function(aElt) { // 処理 dump("processing... " + aElt + " "); // 次の処理へ this._next(); }, _finish : function() { // 終了処理 dump("finish "); }, }; asyncProcessor.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']);