只处理一次事件
¥Handling events only once
当使用 eventEmitter.on()
方法注册监听器时,每次触发命名事件时都会调用该监听器。
¥When a listener is registered using the eventEmitter.on()
method, that
listener is invoked every time the named event is emitted.
const myEmitter = new MyEmitter();
let m = 0;
myEmitter.on('event', () => {
console.log(++m);
});
myEmitter.emit('event');
// Prints: 1
myEmitter.emit('event');
// Prints: 2
使用 eventEmitter.once()
方法,可以注册一个监听器,该监听器最多为特定事件调用一次。事件触发后,监听器将被取消注册,然后被调用。
¥Using the eventEmitter.once()
method, it is possible to register a listener
that is called at most once for a particular event. Once the event is emitted,
the listener is unregistered and then called.
const myEmitter = new MyEmitter();
let m = 0;
myEmitter.once('event', () => {
console.log(++m);
});
myEmitter.emit('event');
// Prints: 1
myEmitter.emit('event');
// Ignored