iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
30 lines • 1.02 kB
JavaScript
var RoundrobinIterator = /** @class */ (function () {
function RoundrobinIterator(iterators) {
this.iterators = iterators;
this.i = 0;
}
RoundrobinIterator.prototype[Symbol.iterator] = function () {
return this;
};
RoundrobinIterator.prototype.next = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!this.iterators.length)
return { done: true, value: undefined };
var next = (_a = this.iterators[this.i]).next.apply(_a, args);
if (next.done) {
this.iterators.splice(this.i, 1);
this.i %= this.iterators.length;
return this.next.apply(this, args);
}
this.i = (this.i + 1) % this.iterators.length;
return next;
};
return RoundrobinIterator;
}());
export { RoundrobinIterator };
export default RoundrobinIterator;
//# sourceMappingURL=RoundrobinIterator.js.map