@ethereumjs/util / AsyncEventEmitter
Name | Type |
---|---|
T |
extends EventMap |
EventEmitter
↳ AsyncEventEmitter
• new AsyncEventEmitter<T
>(options?
)
Name | Type |
---|---|
T |
extends EventMap |
Name | Type |
---|---|
options? |
EventEmitterOptions |
EventEmitter.constructor
node_modules/@types/node/ts4.8/events.d.ts:111
▪ Static
Readonly
captureRejectionSymbol: typeof captureRejectionSymbol
EventEmitter.captureRejectionSymbol
node_modules/@types/node/ts4.8/events.d.ts:328
▪ Static
captureRejections: boolean
Sets or gets the default captureRejection value for all emitters.
EventEmitter.captureRejections
node_modules/@types/node/ts4.8/events.d.ts:333
▪ Static
defaultMaxListeners: number
EventEmitter.defaultMaxListeners
node_modules/@types/node/ts4.8/events.d.ts:334
▪ Static
Readonly
errorMonitor: typeof errorMonitor
This symbol shall be used to install a listener for only monitoring 'error'
events. Listeners installed using this symbol are called before the regular
'error'
listeners are called.
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.
EventEmitter.errorMonitor
node_modules/@types/node/ts4.8/events.d.ts:327
▸ addListener<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.addListener
packages/util/src/asyncEventEmitter.ts:173
▸ after<E
>(event
, target
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
target |
T [E ] |
listener |
T [E ] |
packages/util/src/asyncEventEmitter.ts:127
▸ before<E
>(event
, target
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
target |
T [E ] |
listener |
T [E ] |
packages/util/src/asyncEventEmitter.ts:123
▸ emit<E
>(event
, …args
): boolean
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
...args |
Parameters <T [E ]> |
boolean
EventEmitter.emit
packages/util/src/asyncEventEmitter.ts:50
▸ eventNames(): keyof T
& string
[]
keyof T
& string
[]
EventEmitter.eventNames
packages/util/src/asyncEventEmitter.ts:193
▸ first<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
packages/util/src/asyncEventEmitter.ts:105
▸ getMaxListeners(): number
number
EventEmitter.getMaxListeners
packages/util/src/asyncEventEmitter.ts:205
▸ listenerCount(event
): number
Name | Type |
---|---|
event |
keyof T & string |
number
EventEmitter.listenerCount
packages/util/src/asyncEventEmitter.ts:201
▸ listeners<E
>(event
): T
[E
][]
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
T
[E
][]
EventEmitter.listeners
packages/util/src/asyncEventEmitter.ts:197
▸ off(eventName
, listener
): AsyncEventEmitter
<T
>
Alias for emitter.removeListener()
.
Since
v10.0.0
Name | Type |
---|---|
eventName |
string | symbol |
listener |
(…args : any []) => void |
EventEmitter.off
node_modules/@types/node/ts4.8/events.d.ts:499
▸ on<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.on
packages/util/src/asyncEventEmitter.ts:169
▸ once<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.once
packages/util/src/asyncEventEmitter.ts:79
▸ prependListener<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.prependListener
packages/util/src/asyncEventEmitter.ts:177
▸ prependOnceListener<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.prependOnceListener
packages/util/src/asyncEventEmitter.ts:181
▸ rawListeners(eventName
): Function
[]
Returns a copy of the array of listeners for the event named eventName
,
including any wrappers (such as those created by .once()
).
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
Since
v9.4.0
Name | Type |
---|---|
eventName |
string | symbol |
Function
[]
EventEmitter.rawListeners
node_modules/@types/node/ts4.8/events.d.ts:569
▸ removeAllListeners(event?
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
event? |
keyof T & string |
EventEmitter.removeAllListeners
packages/util/src/asyncEventEmitter.ts:185
▸ removeListener<E
>(event
, listener
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
E |
extends string | number | symbol |
Name | Type |
---|---|
event |
E & string |
listener |
T [E ] |
EventEmitter.removeListener
packages/util/src/asyncEventEmitter.ts:189
▸ setMaxListeners(maxListeners
): AsyncEventEmitter
<T
>
Name | Type |
---|---|
maxListeners |
number |
EventEmitter.setMaxListeners
packages/util/src/asyncEventEmitter.ts:209
▸ Static
getEventListeners(emitter
, name
): Function
[]
Returns a copy of the array of listeners for the event named eventName
.
For EventEmitter
s this behaves exactly the same as calling .listeners
on
the emitter.
For EventTarget
s this is the only way to get the event listeners for the
event target. 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]
}
Since
v15.2.0, v14.17.0
Name | Type |
---|---|
emitter |
EventEmitter | _DOMEventTarget |
name |
string | symbol |
Function
[]
EventEmitter.getEventListeners
node_modules/@types/node/ts4.8/events.d.ts:299
▸ Static
listenerCount(emitter
, eventName
): number
A class method that returns the number of listeners for the given eventName
registered on the given emitter
.
const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
Since
v0.9.12
Deprecated
Since v3.2.0 - Use listenerCount
instead.
Name | Type | Description |
---|---|---|
emitter |
EventEmitter |
The emitter to query |
eventName |
string | symbol |
The event name |
number
EventEmitter.listenerCount
node_modules/@types/node/ts4.8/events.d.ts:271
▸ Static
on(emitter
, eventName
, options?
): AsyncIterableIterator
<any
>
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. It will throw
if the EventEmitter
emits 'error'
. It removes all listeners when
exiting the loop. The value
returned by each iteration is an array
composed of the emitted event arguments.
An AbortSignal
can be used to cancel waiting on events:
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 use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
Since
v13.6.0, v12.16.0
Name | Type | Description |
---|---|---|
emitter |
EventEmitter |
- |
eventName |
string |
The name of the event being listened for |
options? |
StaticEventEmitterOptions |
- |
AsyncIterableIterator
<any
>
that iterates eventName
events emitted by the emitter
EventEmitter.on
node_modules/@types/node/ts4.8/events.d.ts:254
▸ Static
once(emitter
, eventName
, options?
): Promise
<any
[]>
Creates a Promise
that is fulfilled when the EventEmitter
emits the given
event or that is rejected if the EventEmitter
emits 'error'
while waiting.
The Promise
will resolve with an array of all the arguments emitted to the
given event.
This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error'
event
semantics and does not listen to the 'error'
event.
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. 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:
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:
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!
Since
v11.13.0, v10.16.0
Name | Type |
---|---|
emitter |
_NodeEventTarget |
eventName |
string | symbol |
options? |
StaticEventEmitterOptions |
Promise
<any
[]>
EventEmitter.once
node_modules/@types/node/ts4.8/events.d.ts:194
▸ Static
once(emitter
, eventName
, options?
): Promise
<any
[]>
Name | Type |
---|---|
emitter |
_DOMEventTarget |
eventName |
string |
options? |
StaticEventEmitterOptions |
Promise
<any
[]>
EventEmitter.once
node_modules/@types/node/ts4.8/events.d.ts:195
▸ Static
setMaxListeners(n?
, …eventTargets
): void
const {
setMaxListeners,
EventEmitter
} = require('events');
const target = new EventTarget();
const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);
Since
v15.4.0
Name | Type | Description |
---|---|---|
n? |
number |
A non-negative number. The maximum number of listeners per EventTarget event. |
...eventTargets |
(EventEmitter | _DOMEventTarget )[] |
- |
void
EventEmitter.setMaxListeners
node_modules/@types/node/ts4.8/events.d.ts:317