25 lines
483 B
JavaScript
25 lines
483 B
JavaScript
module.exports = function() {
|
|
var queue = []
|
|
return {
|
|
throttle: function(fn) {
|
|
var pending = false
|
|
return function() {
|
|
if (!pending) {
|
|
queue.push(function(){
|
|
pending = false
|
|
fn()
|
|
})
|
|
pending = true
|
|
}
|
|
}
|
|
},
|
|
fire: function() {
|
|
var tasks = queue
|
|
queue = []
|
|
tasks.forEach(function(fn) {fn()})
|
|
},
|
|
queueLength: function(){
|
|
return queue.length
|
|
}
|
|
}
|
|
}
|