@neosjs/emitter
v1.0.2
Published
事件订阅/发布器,可实现多窗口同步消息
Downloads
8
Maintainers
Readme
@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()
销毁实例