Skip to content

Instantly share code, notes, and snippets.

View seidtgeist's full-sized avatar
🏢

Stephan Seidt seidtgeist

🏢
View GitHub Profile
@jed
jed / tee.js
Last active November 24, 2020 17:59
Teeing an asynchronous iterator
function tee(asyncIterable) {
let source = asyncIterable[Symbol.asyncIterator]()
return [[], []].map((buffer, i, buffers) => ({
async next() {
if (0 in buffer) return buffer.shift()
let item = await source.next()
if (!item.done) buffers[1 - i].push(item)