diff --git a/index.js b/index.js index 0e1be3f..f855cd6 100644 --- a/index.js +++ b/index.js @@ -1,13 +1,13 @@ module.exports = function flatmap (fn) { - var queue = [] + var queue = [], i return function (read) { return function again (abort, cb) { - if(abort) return read(abort, cb) - if(queue.length) return cb(null, queue.shift()) - + if(abort) return read(abort, cb) + if(i < queue.length) return cb(null, queue[i++]) read(null, function (err, data) { if(err) return cb(err) queue = fn(data) + i = 0 again(null, cb) //cb or read again if queue is empty. }) }