Optional
options: ListCollectionsOptionsOptional
optionsStatic
Readonly
CLOSEStatic
Readonly
captureStatic
captureSets or gets the default captureRejection value for all emitters.设置或获取所有发射器的默认captureRejection值。
Static
defaultStatic
Readonly
errorThis 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'
侦听器,进程仍将崩溃。
Add a cursor flag to the cursor将游标标志添加到游标
The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.要设置的标志必须是以下之一[“可用”、“oplogReplay”、“noCursorTimeout”、“awaitData”、“partial”-。
The flag boolean value.标志布尔值。
Set the batch size for the cursor.设置游标的批次大小。
The number of documents to return per batch. See command documentation.每批要返回的文档数。请参阅命令文档。
Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance返回此游标的新的未初始化副本,其选项与在当前实例上设置的选项相匹配
Rest
...args: Parameters<AbstractCursorEvents[EventKey]>Iterates over all the documents for this cursor using the iterator, callback pattern.使用迭代器、回调模式对该游标的所有文档进行迭代。
If the iterator returns 如果迭代器返回false
, iteration will stop.false
,迭代将停止。
The iteration callback.迭代回调。
await...of
。Map all documents using the provided function If there is a transform set on the cursor, that will be called first and the result passed to this function's transform.使用提供的函数映射所有文档如果游标上有一个转换集,将首先调用该转换集,并将结果传递给该函数的转换。
The mapping transformation method.映射转换方法。
Note Cursors use 注意游标在内部使用null
internally to indicate that there are no more documents in the cursor. null
表示游标中不再有文档。Providing a mapping function that maps values to 提供一个将值映射为null
will result in the cursor closing itself before it has finished iterating all documents. null
的mapping函数将导致游标在迭代完所有文档之前关闭。This will not result in a memory leak, just surprising behavior. 这不会导致内存泄漏,只是令人惊讶的行为。For example:例如:
const cursor = collection.find({});
cursor.map(() => null);
const documents = await cursor.toArray();
// documents is always [], regardless of how many documents are in the collection.documents始终为[],无论集合中有多少个文档。
Other falsey values are allowed:允许其他伪值:
const cursor = collection.find({});
cursor.map(() => '');
const documents = await cursor.toArray();
// documents is now an array of empty strings现在是一个空字符串数组
Note for Typescript Users:Typescript用户注意事项: adding a transform changes the return type of the iteration of this cursor, it does not return a new instance of a cursor. 添加转换会更改此游标迭代的返回类型,它不会返回游标的新实例。This means when calling map, you should always assign the result to a new variable in order to get a correctly typed cursor variable. 这意味着在调用map时,应该始终将结果分配给一个新变量,以便获得正确类型的游标变量。Take note of the following example:请注意以下示例:
const cursor: FindCursor<Document> = coll.find();
const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]仍然返回Document[]
Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)在游标查询上设置maxTimeMS,允许对查询进行硬超时限制(仅在MongoDB 2.6或更高版本上支持)
Number of milliseconds to wait before aborting the query.中止查询前等待的毫秒数。
Optional
event: string | symbol | EventKeyRewind this cursor to its uninitialized state. 将此游标回退到未初始化状态。Any options that are present on the cursor will remain in effect. 游标上的任何选项都将保持有效。Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.迭代该游标将导致向服务器发送新的查询,即使该游标已经检索到结果数据。
Optional
options: CursorStreamOptionsReturns an array of documents. 返回一个文档数组。The caller is responsible for making sure that there is enough memory to store the results. 调用者负责确保有足够的内存来存储结果。Note that the array only contains partial results when this cursor had been previously accessed. 请注意,当以前访问过该游标时,数组只包含部分结果。In that case, cursor.rewind() can be used to reset the cursor.在这种情况下,可以使用cursor.rewind()
来重置游标。
Set the ReadPreference for the cursor.设置游标的ReadPreference。
Set the ReadPreference for the cursor.设置游标的ReadPreference。
The new read preference for the cursor.游标的新读取首选项。
Static
getReturns 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
,其行为与在发射器上调用.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.这对于调试和诊断非常有用。
import { getEventListeners, EventEmitter } from 'node:events';
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
v15.2.0, v14.17.0
Static
listenerA class method that returns the number of listeners for the given 一个类方法,用于返回在给定eventName
registered on the given emitter
.emitter
上注册的给定eventName
的侦听器数。
import { EventEmitter, listenerCount } from 'node: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事件名称
v0.9.12
Since v3.2.0 - Use 请改用listenerCount
instead.listenerCount
。
Static
onimport { on, EventEmitter } from 'node:events';
import process from 'node:process';
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
可用于取消等待事件:
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
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());
The name of the event being listened for正在侦听的事件的名称
Optional
options: StaticEventEmitterOptionsthat iterates 迭代eventName
events emitted by the emitter
emitter
发出的eventName
事件
v13.6.0, v12.16.0
Static
onceCreates a 创建一个Promise
that is fulfilled when the EventEmitter
emits the given event or that is rejected if the EventEmitter
emits 'error'
while waiting.Promise
,该Promise在EventEmitter
发出给定事件时实现,或者如果EventEmitter
在等待时发出'error'
则被拒绝。
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'
消息。
import { once, EventEmitter } from 'node:events';
import process from 'node:process';
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.error('error happened', err);
}
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'
事件本身,那么它将被视为任何其他类型的事件,而无需特殊处理:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.error('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
An AbortSignal
can be used to cancel waiting for the event:AbortSignal
可用于取消等待事件:
import { EventEmitter, once } from 'node: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!打印:等待活动已取消!
Optional
options: StaticEventEmitterOptionsv11.13.0, v10.16.0
Optional
options: StaticEventEmitterOptionsStatic
setimport { setMaxListeners, EventEmitter } from 'node:events';
const target = new EventTarget();
const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);
Optional
n: numberA non-negative number. The maximum number of listeners per 一个非负数。每个EventTarget
event.EventTarget
事件的最大侦听器数。
Rest
...eventTargets: (EventEmitter | _DOMEventTarget)[]v15.4.0
Generated using TypeDoc
Event