Files
komodo/util/observable.ts
T
2022-03-13 21:58:02 -07:00

14 lines
375 B
TypeScript

export function createObservable<Message>() {
const subscribers = new Set<(message: Message) => void>();
return {
subscribe: (callback: (message: Message) => void) => {
subscribers.add(callback);
return () => {
subscribers.delete(callback);
};
},
publish: (msg: Message) => {
subscribers.forEach((cb) => cb(msg));
},
};
}