@segment/analytics-react-native
Version:
The hassle-free way to add Segment analytics to your React-Native app.
24 lines (19 loc) • 525 B
text/typescript
export const createCallbackManager = <V, R = void>() => {
type Callback = (value: V) => R;
const callbacks: Callback[] = [];
const deregister = (callback: Callback) => {
callbacks.splice(callbacks.indexOf(callback), 1);
};
const register = (callback: Callback) => {
callbacks.push(callback);
return () => {
deregister(callback);
};
};
const run = (value: V) => {
for (const callback of [...callbacks]) {
callback(value);
}
};
return { register, deregister, run };
};