UNPKG

asyncerator

Version:

Provide supporting types for AsyncIterable/AsyncIterableIterators, promisified stream.pipeline implementation, and Array-like utility operators, sources and sinks.

25 lines (24 loc) 1.35 kB
// src/source/all.ts import debug from "debug"; var log = debug("asyncerator:source:all"); async function* all_default(promises) { const queue = []; const pending = new Set(promises); for (const [index, promise] of [...promises].entries()) { promise.then((value) => { queue.push(value); pending.delete(promise); return value; }).catch((error) => { log(`[${index}]`, error); }); } while (pending.size > 0) { await Promise.race(pending); yield* queue.splice(0, queue.length); } } export { all_default as default }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3NvdXJjZS9hbGwudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBUUEsT0FBTyxXQUFXO0FBSWxCLElBQU0sTUFBTSxNQUFNLHdCQUF3QjtBQVMxQyxnQkFBTyxZQUE0QixVQUFnRDtBQUVqRixRQUFNLFFBQWEsQ0FBQztBQUNwQixRQUFNLFVBQVUsSUFBSSxJQUFJLFFBQVE7QUFFaEMsYUFBVyxDQUFDLE9BQU8sT0FBTyxLQUFLLENBQUMsR0FBRyxRQUFRLEVBQUUsUUFBUSxHQUFHO0FBRXRELFlBQ0csS0FBSyxDQUFDLFVBQVU7QUFDZixZQUFNLEtBQUssS0FBSztBQUNoQixjQUFRLE9BQU8sT0FBTztBQUN0QixhQUFPO0FBQUEsSUFDVCxDQUFDLEVBQ0EsTUFBTSxDQUFDLFVBQW1CO0FBR3pCLFVBQUksSUFBSSxLQUFLLEtBQUssS0FBSztBQUFBLElBQ3pCLENBQUM7QUFBQSxFQUNMO0FBR0EsU0FBTyxRQUFRLE9BQU8sR0FBRztBQUV2QixVQUFNLFFBQVEsS0FBSyxPQUFPO0FBQzFCLFdBQU8sTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNO0FBQUEsRUFDckM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K