| « 非同期ループ処理 (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']);