UNPKG

xunfei-tts

Version:

借助“讯飞在线语音合成API”实现浏览器端“文本转语音

37 lines (30 loc) 756 B
interface EventCallback { (...args: any[]): any } class EventBus<E = any> { private listeners: Map<E, EventCallback[]> = new Map() on(eventName: E, callback: EventCallback): void { const callbacks = this.listeners.get(eventName) if (callbacks) { callbacks.push(callback) } else { this.listeners.set(eventName, [callback]) } } emit<T = any>(eventName: E, data?: T): void { const callbacks = this.listeners.get(eventName) if (callbacks) { callbacks.forEach((callback) => { callback(data) }) } } } function createEventBus<E>(): EventBus<E> { return new EventBus<E>() } export type { EventCallback } export { createEventBus, EventBus }