@thi.ng/transducers-async
Version:
Async versions of various highly composable transducers, reducers and iterators
16 lines (15 loc) • 439 B
JavaScript
const __inflightIters = (iters) => iters.map((iter) => iter.iter.next().then((res) => ({ iter, res })));
const __iterNext = (promises, iter) => {
promises[iter.id] = iter.iter.next().then((res) => ({ res, iter }));
};
const __iterRemove = (iters, id) => {
iters.splice(id, 1);
const n = iters.length;
if (!n) return true;
for (let i = id; i < n; i++) iters[i].id--;
};
export {
__inflightIters,
__iterNext,
__iterRemove
};