emitter
你可以使用micell.emitter.create()创建一个Emitter实例对象,每一个 Emitter 实例对象都有下面的方法:
emitgetListenersoffononce
micell.emitter如同一个全局的 Emitter 实例对象,也具有上面的方法,即下面的函数实际上是调用的一个全局 Emitter 实例对象对应的方法。
micell.emitter.emitmicell.emitter.getListenersmicell.emitter.offmicell.emitter.onmicell.emitter.once
Emitter
js
new Emitter()Emitter 构造函数,不过推荐使用create()方法创建 Emitter 实例。
起始版本
0.5.0
返回值
(Emitter)
create
js
create()创建一个 Emitter 实例。
起始版本
0.5.0
返回值
(Emitter)
示例
js
const emitter = create()
emitter.on('foo', () => console.log('foo'))
emitter.emit('foo')
// => 'foo'emit
js
emit(type, [arg1], [arg2], ...)起始版本
0.5.0
参数
type (string)[argN] (any)
js
micell.emitter.on('foo', (...args) => console.log(args))
micell.emitter.emit('foo', 1, 2, 3)
// => [1, 2, 3]getListeners
js
getListeners(type)获取事件type的所有监听器函数或者所有事件的所有监听器函数。
起始版本
0.5.0
参数
[type (string)]
返回值
(Array<Listener>)
示例
js
micell.emitter.on('foo', () => console.log('foo 1'))
micell.emitter.on('bar', () => console.log('bar 1'))
micell.emitter.on('foo', () => console.log('foo 2'))
// 事件 'foo' 对应的所有监听器函数
micell.emitter.getListeners('foo')
// 所有事件的所有监听器函数
micell.emitter.getListeners()off
js
off(type, listener)- 如果参数为空,则所有事件的所有监听器函数都被移除。
- 如果只传入了
type参数,则type事件对应的所有监听器函数都被移除。 - 如果
type和listener参数都传入了,则type事件对应的所有listener监听器函数会被移除。
起始版本
0.5.0
参数
[type (string)][listener (function)]
示例
js
const fn1 = () => console.log(1)
const fn2 = () => console.log(2)
micell.emitter.on('foo', fn1)
micell.emitter.on('bar', fn1)
micell.emitter.on('foo', fn2)
micell.emitter.off('foo', fn1)
micell.emitter.off('foo')
micell.emitter.off()on
js
on(type, listener)绑定一个监听器函数listener。
起始版本
0.5.0
参数
[type (string)][listener (function)]
once
js
once(type, listener)和on方法一样,绑定一个监听器函数listener,但是监听器函数只会被执行一次。
参数
[type (string)][listener (function)]