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

TOP

TOP