https://github.com/Gozala/reducers
Tip revision: fc0627cda4f3fafad3b8b212ce7912c53771e78e authored by Irakli Gozalishvili on 22 January 2013, 17:02:00 UTC
Add IE10 into test matrix.
Add IE10 into test matrix.
Tip revision: fc0627c
delay.js
"use strict";
var reducible = require("reducible/reducible")
var reduce = require("reducible/reduce")
var isReduced = require("reducible/is-reduced")
var end = require("reducible/end")
function delay(source, ms) {
ms = ms || 6 // Minimum 6ms, as on less dispatch order becomes unreliable
return reducible(function reduceDelayed(next, result) {
var timeout = 0
var ended = false
reduce(source, function reduceDelaySource(value) {
setTimeout(function delayed() {
if (!ended) {
timeout = timeout - ms
result = next(value, result)
if (isReduced(result)) {
ended = true
next(end)
}
}
}, timeout = timeout + ms)
return result
})
})
}
module.exports = delay