fastladder/fastladder

View on GitHub
app/assets/javascripts/lib/models/queue.js

Summary

Maintainability
A
0 mins
Test Coverage
(function(){
    LDR.Queue = Class.create();
    LDR.Queue.extend({
        initialize: function(){
            this.queue = [];
        },

        step : 1,
        interval : 100,

        push: function(f){
            this.queue.push(f);
        },

        exec: function(){
            var queue = this.queue;
            var step = this.step;
            var interval = this.interval;
            (function(){
                var self = arguments.callee;
                var count = 0;
                while(count < step){
                    var f = queue.shift();
                    isFunction(f) && f();
                    count++;
                }
                if(queue.length){
                    self.later(interval)()
                }
            }).later(interval)();
            //TODO あとでlasterは消す
        }
    });
}).call(LDR);