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 };