emitter.once(eventName, listener)
eventName<string> | <symbol> 事件的名称。listener<Function> 回调函数- 返回:<EventEmitter>
为名为 eventName 的事件添加一个一次性的 listener 函数。下次触发 eventName 时,该监听器将被移除,然后被调用。
🌐 Adds a one-time listener function for the event named eventName. The
next time eventName is triggered, this listener is removed and then invoked.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
}); 返回 EventEmitter 的引用,以便可以进行链式调用。
🌐 Returns a reference to the EventEmitter, so that calls can be chained.
默认情况下,事件监听器会按照添加的顺序被调用。可以使用 emitter.prependOnceListener() 方法作为替代,将事件监听器添加到监听器数组的开头。
🌐 By default, event listeners are invoked in the order they are added. The
emitter.prependOnceListener() method can be used as an alternative to add the
event listener to the beginning of the listeners array.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// aconst EventEmitter = require('node:events');
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a