iterama
Version:
Composable functional (async) iterable helpers
31 lines (25 loc) • 649 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.zip = zip;
function zip(...iterables) {
return {
*[Symbol.iterator]() {
const iterators = iterables.map(i => i[Symbol.iterator]());
try {
while (true) {
const values = iterators.map(i => i.next());
if (values.some(v => v.done)) {
break;
}
yield values.map(v => v.value);
}
} finally {
iterators.forEach(i => {
var _i$return;
return (_i$return = i.return) === null || _i$return === void 0 ? void 0 : _i$return.call(i);
});
}
}
};
}