import {IEmitter} from "./emitter"; import {DeviceEventEmitter, EmitterSubscription} from "react-native"; class Emitter implements IEmitter { /** * 获取数据 * @param name * @param callback */ get(name: string, callback?: (data: T) => void): EmitterSubscription { return DeviceEventEmitter.addListener(name, (data: T) => { if (typeof callback === 'function') callback(data); }) } /** * 写入数据 * @param name * @param value * @param timer */ set(name: string, value: T, timer?: number): void { setTimeout(() => { DeviceEventEmitter.emit(name, value); }, timer ?? 1) } } const emitter = new Emitter(); export default emitter; export type { IEmitter, }