短小强悍的 Javascript 异步调用库

2016/03/04 javascript
var queue = function(funcs, scope) {
    (function next(){
        if(funcs.length > 0){
            funcs.shift().apply(scope, [next].concat(Array.prototype.slice.call(arguments, 0)));
        }
    })();
}


// Example
var obj = { value: null };

queue([
    function(callback){
        var me = this;
        setTimeout(function () {
            me.value = 10;
            callback(20);
        });
    },
    function (callback, add) {
        console.log(this.value + add);
        callback();
    },
    function () {
        console.log(obj.value);
    }
], obj);

// console: 30
// console: 10
上次更新: 2023/1/2 02:25:24