You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

25 lines
422 B

module.exports = inflight
var reqs = Object.create(null)
var once = require('once')
function inflight (key, cb) {
if (reqs[key]) {
reqs[key].push(cb)
return null
} else {
reqs[key] = [cb]
return makeres(key)
}
}
function makeres(key) {
return once(res)
function res(error, data) {
var cbs = reqs[key]
delete reqs[key]
cbs.forEach(function(cb) {
cb(error, data)
})
}
}