react-async-iterators
Version:
The magic of JavaScript async iterators in React ⛓️ 🧬 🔃
25 lines • 862 B
JavaScript
export { asyncIterSyncMap };
function asyncIterSyncMap(source, mapFn) {
return {
[Symbol.asyncIterator]: () => {
let iterator;
let iterationIdx = 0;
return {
next: async () => {
iterator ??= source[Symbol.asyncIterator]();
const next = await iterator.next();
if (next.done) {
return next;
}
const mappedValue = mapFn(next.value, iterationIdx++);
return { done: false, value: mappedValue };
},
return: async () => {
await iterator?.return?.();
return { done: true, value: undefined };
},
};
},
};
}
//# sourceMappingURL=asyncIterSyncMap.js.map