axax
Version:
A library of async iterator extensions for JavaScript including ```map```, ```reduce```, ```filter```, ```flatMap```, ```pipe``` and [more](https://github.com/jamiemccrindle/axax/blob/master/docs/API.md#functions).
19 lines (18 loc) • 573 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Zips two iterables
*/
function zip(first) {
return async function* inner(second) {
const iterators = [first, second].map(value => value[Symbol.asyncIterator]());
while (true) {
const [firstNext, secondNext] = await Promise.all(iterators.map(iterator => iterator.next()));
if (firstNext.done || secondNext.done) {
return;
}
yield [firstNext.value, secondNext.value];
}
};
}
exports.zip = zip;