events.on(emitter, eventName[, options])
添加於:v13.6.0、v12.16.0
參數
emitter
EventEmittereventName
<string> | <symbol> 正在監聽的事件的名稱options
<Object>signal
<AbortSignal> 可用於取消等待事件。
- 返回: <AsyncIterator> 迭代由
emitter
發出的eventName
事件
const { on, EventEmitter } = require('node:events');
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
返回迭代 eventName
事件的 AsyncIterator
。如果 EventEmitter
發出 'error'
,它將拋出。它在退出循環時刪除所有偵聽器。每次迭代返回的value
是一個由發出的事件參數組成的數組。
<AbortSignal> 可用於取消等待事件:
const { on, EventEmitter } = require('node:events');
const ac = new AbortController();
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
相關用法
- Node.js events.once(emitter, name[, options])用法及代碼示例
- Node.js events.setMaxListeners(n[, ...eventTargets])用法及代碼示例
- Node.js events.listenerCount(emitter, eventName)用法及代碼示例
- Node.js events.getEventListeners(emitterOrTarget, eventName)用法及代碼示例
- Node.js events.defaultMaxListeners用法及代碼示例
- Node.js EventEmitter emitter.eventNames()用法及代碼示例
- Node.js EventEmitter emitter[Symbol.for('nodejs.rejection')](err, eventName[, ...args])用法及代碼示例
- Node.js ecdh.getPrivateKey()用法及代碼示例
- Node.js EventEmitter emitter.listeners(eventName)用法及代碼示例
- Node.js EventEmitter emitter.rawListeners(eventName)用法及代碼示例
- Node.js EventEmitter emitter.removeListener(eventName, listener)用法及代碼示例
- Node.js EventEmitter emitter.emit(eventName[, ...args])用法及代碼示例
- Node.js ecdh.generateKeys()用法及代碼示例
- Node.js emitter.eventNames()用法及代碼示例
- Node.js EventEmitter emitter.once(eventName, listener)用法及代碼示例
- Node.js ecdh.computeSecret()用法及代碼示例
- Node.js ecdh.setPrivateKey()用法及代碼示例
- Node.js EventEmitter emitter.on(eventName, listener)用法及代碼示例
- Node.js ecdh.setPublicKey()用法及代碼示例
- Node.js ecdh.getPublicKey()用法及代碼示例
- Node.js EventEmitter emitter.prependListener(eventName, listener)用法及代碼示例
- Node.js EventEmitter emitter.prependOnceListener(eventName, listener)用法及代碼示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代碼示例
- Node.js http2.Http2ServerRequest request.url用法及代碼示例
- Node.js request.socket用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 events.on(emitter, eventName[, options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。