1.0.2 • Published 9 months ago
@neosjs/emitter v1.0.2
@neosjs/emitter
简易的事件订阅/发布器,可实现多窗口同步消息
安装
pnpm add @neosjs/emitter
npm install @neosjs/emitter
yarn add @neosjs/emitter
使用
基础使用
import NeosEmitter from '@neosjs/emitter'
const emitter = new NeosEmitter()
// 订阅
emitter.on('test', (data) => {
// …
})
// 发布
emitter.emit('test', 'hello world')
多窗口同步
import NeosEmitter from '@neosjs/emitter'
const emitter = new NeosEmitter({
channelName: 'neosjs', // 通道名称(默认值:@neosjs-broadcast-emitterevent)
broadcast: true, // 是否开启广播(多窗口同步消息)
debug: true, // 是否开启调试(默认值:false)
})
// 窗口B订阅、监听事件
emitter.on('test', (data) => {
// …
})
// 窗口A发布事件
emitter.emit('test', 'hello world')
参数
NeosEmitter(options: EmitterOptions)
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
options | 配置项 | EmitterOptions | {} |
options.channelName | 通道名称 | string | @neosjs-broadcast-emitterevent |
options.broadcast | 是否开启广播 | boolean | false |
options.debug | 是否开启调试 | boolean | false |
方法
on(event: string, listener: Function)
订阅事件
参数 | 说明 | 类型 |
---|---|---|
event | 事件名称 | string |
listener | 事件监听器 | Function |
once(event: string, listener: Function)
订阅一次事件
参数 | 说明 | 类型 |
---|---|---|
event | 事件名称 | string |
listener | 事件监听器 | Function |
emit(event: string, data: any)
发布事件
参数 | 说明 | 类型 |
---|---|---|
event | 事件名称 | string |
data | 事件数据 | any |
off(event: string, listener?: Function)
取消订阅事件
参数 | 说明 | 类型 |
---|---|---|
event | 事件名称 | string |
listener | 事件监听器 | Function |
destroy()
销毁实例