UNPKG

@minto-ai/xunfei-tts

Version:

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

38 lines (31 loc) 819 B
interface EventCallback { (...args: any[]): any } class EventBus<E = any> { private listeners: Map<E, EventCallback[]> = new Map() on(eventName: E, callback: EventCallback) { const callbacks = this.listeners.get(eventName) if (callbacks) { callbacks.push(callback) } else { this.listeners.set(eventName, [callback]) } } emit<T = any>(eventName: E, data?: T) { const callbacks = this.listeners.get(eventName) if (callbacks) { callbacks.forEach((callback) => { callback(data) }) } } } let eventBusInstance: EventBus | null = null function createEventBus<E>() { if (!eventBusInstance) { eventBusInstance = new EventBus<E>() } return eventBusInstance as EventBus<E> } export { createEventBus }