import { Observable } from '../../observable'; const forEach = async >( observable: T, fn: ( value: T extends Observable ? (U extends Array ? A : never) : never, ) => Promise, ) => { const knownValues = new Set(); const update = async () => { for (let value of await observable.data) { if (knownValues.has(value)) { continue; } await fn(value); knownValues.add(value); } }; await update(); observable.subscribe(update); }; export { forEach };