1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 3x 3x 3x 3x 3x 3x | // @flow export type Subscribe = (cb: Function) => Subscription; export type Subscription = { cb: Function, unsubscribe: Function } export function factory(subscriptions: Array<Subscription>) { return function subscribe(cb: Function) { const subscription: Subscription = { cb, unsubscribe: () => { const index = subscriptions.indexOf(subscription); subscriptions.splice(index, 1) } }; subscriptions.push(subscription); return subscription } } |