queue

 function Queue() {
        this.data = [];
    }
    Queue.prototype = {
        processTime: 20,
        add: function (fn, params, context) {
            this.data.push({
                fn: fn,
                params: params,
                context: context
            });
        },
        start: function () {
            var that = this;
            setTimeout(function () {
                that.process();
            }, this.processTime);
        },
        process: function () {
            var d = this.data.shift();
            if (!d) return;
            d.fn.apply(d.context, d.params);
            d = null;
            this.start();
        }
    }

    var a=11,b=22;
    var q = new Queue();
    q.add(function (a,b) {
        console.log(1+':'+a+b);
    },[a,b]);
    q.add(function () {
        console.log(2);
    });
    q.add(function () {
        console.log(3);
    });
    q.start();
原文地址:https://www.cnblogs.com/human/p/3468984.html