一段在 loupe 中运行成功的代码

发现 loupe 中是不能直接粘贴代码的,自己动手敲击代码才能运行的

下面的代码可以在 loupe 中运行

    function async(arg, callback) {
        console.log('参数为 ' + arg + ' , 1秒后返回结果');
        setTimeout(function () {
            callback(arg * 2);
        }, 1000);
    }

    function final(value) {
        console.log('完成: ', value);
    }

    var items = [1, 2, 3, 4, 5, 6];
    var results = [];
    var running = 0;
    var limit = 2;

    function launcher() {
        while (running < limit && items.length > 0) {
            var item = items.shift();
            async(item, function (result) {
                results.push(result);
                running--;
                if (items.length > 0) {
                    launcher();
                } else if (running == 0) {
                    final();
                }
            });
            running++;
        }
    }

    launcher();