Emitter
简体中文 | English
一个很小的 event emitter 库。
安装
使用 npm 安装
npm i small-emitter
在项目中导入
import Emitter from 'small-emitter'
const Emitter = require('small-emitter')
用法
import Emitter from 'small-emitter'
const emitter = new Emitter();
emitter.on('foo', function (p1, p2, p3) {
});
emitter.once('foo', function (p1, p2, p3) {
});
emitter.emit('foo', 'p1', 'p2', 'p3');
emitter.clear()
function fn() {}
emitter.on('foo', fn)
emitter.off('foo', fn)
API
on(name: string, callback: () => void)
参数
示例
const emitter = new Emitter()
emitter.on('foo', (data) => {
console.log(data)
})
emitter.emit('foo', 1)
emitter.emit('foo', 2)
once(name: string, callback: () => void)
参数
示例
const emitter = new Emitter()
emitter.once('foo', (data) => {
console.log(data)
})
emitter.emit('foo', 'a')
emitter.emit('foo', 'b')
emit(name: string, ...args: any[])
参数
name
事件名...args (optional)
执行事件时传入的参数
示例
const emitter = new Emitter()
emitter.once('bar', (message, name) => {
console.log(`${message}, ${name}`)
})
emitter.emit('bar', 'hi', 'Jack')
off(name: string, callback?: () => void)
参数
name
事件名callback (optional)
需要清除的函数或函数引用
示例
const emitter = new Emitter()
const fn = (message) => {
console.log(message)
}
emitter.on('bar', fn)
emitter.emit('bar', 'hi')
emitter.off('bar', fn)
emitter.emit('bar', 'Jack')
clear()
调用此方法将清除所有事件
示例
const emitter = new Emitter()
emitter.on('foo', (value) => {
console.log(value)
})
emitter.on('bar', (value) => {
console.log(value)
})
emitter.emit('foo', 'hi, foo')
emitter.emit('bar', 'hi, bar')
emitter.clear()
emitter.emit('foo', 'hi, Jack')
emitter.emit('bar', 'hi, Tom')
开源协议
MIT License