lrc-maker
Version:
歌词滚动姬|可能是你所能见到的最好用的歌词制作工具
18 lines (14 loc) • 394 B
text/typescript
export const createPubSub = <DT, ID = unknown>() => {
type CB = (data: DT) => void;
const bus = new Map<ID, CB>();
const pub = (data: DT): void => {
bus.forEach((cb: CB) => cb(data));
};
const sub = (id: ID, cb: CB): (() => void) => {
bus.set(id, cb);
return (): void => {
bus.delete(id);
};
};
return { pub, sub };
};