Skip to content

Instantly share code, notes, and snippets.

@freeart
Created November 15, 2014 15:09
Show Gist options
  • Save freeart/3146ddeea166fee81c50 to your computer and use it in GitHub Desktop.
Save freeart/3146ddeea166fee81c50 to your computer and use it in GitHub Desktop.
Sequence
function sequence(iterator, arrayList) {
this.iterator = iterator;
this.sequence = arrayList || [];
}
sequence.prototype.next = function (cb) {
var self = this;
if (self.sequence.length == 0){
return setImmediate(cb, null, null);
}
setImmediate(function skip(self) {
self.iterator.next(function (err, cursor) {
if (cursor > self.sequence.length) {
self.iterator.reset(function () {
skip(self);
})
} else {
cb(null, self.sequence[cursor - 1])
}
})
}, self);
}
module.exports = {
create: function (iterator, arrayList) {
return new sequence(iterator, arrayList)
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment