Fired for each new matching change in the specified namespace. 为指定命名空间中的每个新匹配更改激发。Attaching a 将change
event listener to a Change Stream will switch the stream into flowing mode. change
事件侦听器附加到更改流将使流切换到流动模式。Data will then be passed as soon as it is available.数据一旦可用,将立即传递。
Emitted each time the change stream stores a new resume token.每次更改流存储新的恢复令牌时发出。
Sets or gets the default captureRejection value for all emitters.设置或获取所有发射器的默认captureRejection
值。
This symbol shall be used to install a listener for only monitoring 此符号应用于安装仅用于监视'error'
events. 'error'
事件的侦听器。Listeners installed using this symbol are called before the regular 使用此符号安装的侦听器在调用常规'error'
listeners are called.'error'
侦听器之前被调用。
Installing a listener using this symbol does not change the behavior once an 使用此符号安装侦听器不会在发出'error'
event is emitted, therefore the process will still crash if no regular 'error'
listener is installed.'error'
事件后改变行为,因此如果没有安装常规的'error'
侦听器,进程仍将崩溃。
Is the cursor closed游标是否关闭
The cached resume token that is used to resume after the most recently returned change.用于在最近返回的更改后恢复的缓存恢复令牌。
Close the Change Stream关闭更改流
Check if there is any document still available in the Change Stream检查更改流中是否还有可用的文档
Get the next available document from the Change Stream.从更改流中获取下一个可用文档。
Return a modified Readable stream including a possible transform method.返回修改后的Readable流,包括可能的转换方法。
NOTE: When using a Stream to process change stream events, the stream will NOT automatically resume in the case a resumable error is encountered.注意:当使用流处理更改流事件时,如果遇到可恢复的错误,流将不会自动恢复。
Returns a copy of the array of listeners for the event named 返回名为eventName
.eventName
的事件的侦听器数组的副本。
For 对于EventEmitter
s this behaves exactly the same as calling .listeners
on the emitter
.EventEmitter
,这与调用emitter
上的.listeners
完全相同。
For 对于EventTarget
s this is the only way to get the event listeners for the event target. EventTarget
,这是获取事件目标的事件侦听器的唯一方法。This is useful for debugging and diagnostic purposes.这对于调试和诊断非常有用。
const { getEventListeners, EventEmitter } = require('events');
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
getEventListeners(ee, 'foo'); // [listener]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
getEventListeners(et, 'foo'); // [listener]
}
A class method that returns the number of listeners for the given 返回在给定eventName
registered on the given emitter
.emitter
上注册的给定eventName
的侦听器数量的类方法。
const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
The emitter to query要查询的发射器
The event name事件名称
js const { on, EventEmitter } = require('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 })();
Returns an 返回迭代AsyncIterator
that iterates eventName
events. eventName
事件的AsyncIterator
。It will throw if the 如果EventEmitter
emits 'error'
. EventEmitter
发出'error'
,它将抛出。It removes all listeners when exiting the loop. 退出循环时,它会删除所有侦听器。The 每次迭代返回的value
returned by each iteration is an array composed of the emitted event arguments. value
是由发出的事件参数组成的数组。
An AbortSignal
can be used to cancel waiting on events:AbortSignal
可用于取消等待事件:
const { on, EventEmitter } = require('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 useif concurrent execution is required.如果需要并发执行,请不要使用。
console.log(event); // prints ['bar'] [42]
}
// Unreachable here此处无法访问
})();
process.nextTick(() => ac.abort());
The name of the event being listened for正在侦听的事件的名称
that iterates 迭代eventName
events emitted by the emitter
eventName
发出的eventName
事件
Creates a 创建一个Promise
that is fulfilled when the EventEmitter
emits the given event or that is rejected if the EventEmitter
emits 'error'
while waiting. Promise
,当EventEmitter
发出给定事件时,该Promise将被满足,或者当EventEmitter
在等待时发出'error'
时,该Promise
被拒绝。The Promise
will resolve with an array of all the arguments emitted to the given event.Promise
将使用向给定事件发出的所有参数的数组进行解析。
This method is intentionally generic and works with the web platform EventTarget interface, which has no special此方法是有意泛型的,可与web平台EventTarget接口配合使用,该接口没有特殊的'error'
event semantics and does not listen to the 'error'
event.'error'
事件语义,也不会侦听'error'
。
const { once, EventEmitter } = require('events');
async function run() {
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.log('error happened', err);
}
}
run();
The special handling of the 'error'
event is only used when events.once()
is used to wait for another event. 'error'
事件的特殊处理仅在events.once()
用于等待另一个事件时使用。If 如果events.once()
is used to wait for the 'error'
event itself, then it is treated as any other kind of event without special handling:events.once()
用于等待'error'
事件本身,则它将被视为任何其他类型的事件,无需特殊处理:
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.log('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
An AbortSignal
can be used to cancel waiting for the event:AbortSignal
可用于取消等待事件:
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
const ac = new AbortController();
async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}
foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
const { setMaxListeners, EventEmitter } = require('events');
const target = new EventTarget();
const emitter = new EventEmitter();setMaxListeners(5, target, emitter);
A non-negative number. The maximum number of listeners per 非负数。每个EventTarget
event.EventTarget
事件的最大侦听器数。
Generated using TypeDoc
Creates a new Change Stream instance.创建新的更改流实例。Normally created using Collection.watch().通常使用Collection.watch()
创建。