@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
18 lines (16 loc) • 533 B
JavaScript
import { AsyncSink } from './asyncsink';
import { memoize } from './operators/memoize';
export function fromEventPattern(addHandler, removeHandler) {
const sink = new AsyncSink();
const handler = (e) => sink.write(e);
addHandler(handler);
const yielder = async function* () {
for (let next; !(next = await sink.next()).done;) {
yield next.value;
}
removeHandler(handler);
sink.end();
};
return memoize()(yielder());
}
//# sourceMappingURL=fromeventpattern.mjs.map