Dela via


DeviceTransport interface

Extends

EventEmitter

Metoder

abandon(Message, (err?: Error, results?: MessageAbandoned) => void)
complete(Message, (err?: Error, result?: MessageCompleted) => void)
connect((err?: Error, result?: Connected) => void)
disableC2D((err?: Error) => void)
disableInputMessages((err?: Error) => void)
disableMethods((err?: Error) => void)
disableTwinDesiredPropertiesUpdates((err?: Error) => void)
disconnect((err?: Error, result?: Disconnected) => void)
enableC2D((err?: Error) => void)
enableInputMessages((err?: Error) => void)
enableMethods((err?: Error) => void)
enableTwinDesiredPropertiesUpdates((err?: Error) => void)
getTwin((err?: Error, twin?: TwinProperties) => void)
on("connected", () => void)
on("disconnect", (err?: Error) => void)
on("error", (err: Error) => void)
on("inputMessage", (inputName: string, msg: Message) => void)
on("message", (msg: Message) => void)
on("twinDesiredPropertiesUpdate", (desiredProps: any) => void)
onDeviceMethod(string, (request: MethodMessage, response: DeviceMethodResponse) => void)
reject(Message, (err?: Error, results?: MessageRejected) => void)
sendEvent(Message, (err?: Error, result?: MessageEnqueued) => void)
sendEventBatch(Message[], (err?: Error, result?: MessageEnqueued) => void)
sendMethodResponse(DeviceMethodResponse, (err?: Error, result?: any) => void)
sendOutputEvent(string, Message, (err?: Error, result?: MessageEnqueued) => void)
sendOutputEventBatch(string, Message[], (err?: Error, result?: MessageEnqueued) => void)
setOptions(DeviceClientOptions, (err?: Error, result?: TransportConfigured) => void)
updateSharedAccessSignature(string, (err?: Error, result?: SharedAccessSignatureUpdated) => void)
updateTwinReportedProperties(any, (err?: Error) => void)

Ärvda metoder

addListener<K>(string | symbol, (args: any[]) => void)

Alias för emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Anropar synkront var och en av lyssnarna som registrerats för händelsen med namnet eventName, i den ordning de registrerades och skickar de angivna argumenten till var och en.

Returnerar true om händelsen hade lyssnare, false annars.

import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();

// First listener
myEmitter.on('event', function firstListener() {
  console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
  const parameters = args.join(', ');
  console.log(`event with parameters ${parameters} in third listener`);
});

console.log(myEmitter.listeners('event'));

myEmitter.emit('event', 1, 2, 3, 4, 5);

// Prints:
// [
//   [Function: firstListener],
//   [Function: secondListener],
//   [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
eventNames()

Returnerar en matris som visar de händelser som sändaren har registrerade lyssnare för. Värdena i matrisen är strängar eller Symbols.

import { EventEmitter } from 'node:events';

const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
getMaxListeners()

Returnerar det aktuella maximala lyssnarvärdet för EventEmitter som antingen anges av emitter.setMaxListeners(n) eller som standard till defaultMaxListeners.

listenerCount<K>(string | symbol, Function)

Returnerar antalet lyssnare som lyssnar efter händelsen med namnet eventName. Om listener anges returneras hur många gånger lyssnaren finns i listan över lyssnarna för händelsen.

listeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
off<K>(string | symbol, (args: any[]) => void)

Alias för emitter.removeListener().

once<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.once('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependOnceListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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
//   a
prependListener<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i början av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

prependOnceListener<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName till början av lyssnarmatrisen. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

rawListeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName, inklusive eventuella omslutningar (till exempel de som skapats av .once()).

import { EventEmitter } from 'node:events';
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');
removeAllListeners(string | symbol)

Tar bort alla lyssnare eller de som anges eventName.

Det är dålig praxis att ta bort lyssnare som lagts till någon annanstans i koden, särskilt när den EventEmitter instansen skapades av någon annan komponent eller modul (t.ex. sockets eller filströmmar).

Returnerar en referens till EventEmitter, så att anrop kan länkas.

removeListener<K>(string | symbol, (args: any[]) => void)

Tar bort den angivna listener från lyssnarmatrisen för händelsen med namnet eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() tar högst bort en instans av en lyssnare från lyssnarmatrisen. Om en enskild lyssnare har lagts till flera gånger i lyssnarmatrisen för den angivna eventNamemåste removeListener() anropas flera gånger för att ta bort varje instans.

När en händelse har genererats anropas alla lyssnare som är anslutna till den vid tidpunkten för avsändande i ordning. Detta innebär att alla removeListener()- eller removeAllListeners()-anrop efter avger och innan den senaste lyssnaren slutför körningen inte tar bort dem frånemit() pågår. Efterföljande händelser fungerar som förväntat.

import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();

const callbackA = () => {
  console.log('A');
  myEmitter.removeListener('event', callbackB);
};

const callbackB = () => {
  console.log('B');
};

myEmitter.on('event', callbackA);

myEmitter.on('event', callbackB);

// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
//   A
//   B

// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
//   A

Eftersom lyssnare hanteras med hjälp av en intern matris ändras positionsindexen för alla lyssnare som registrerats när lyssnaren tas bort. Detta påverkar inte i vilken ordning lyssnare anropas, men det innebär att alla kopior av lyssnarmatrisen som returneras av metoden emitter.listeners() måste återskapas.

När en enskild funktion har lagts till som hanterare flera gånger för en enskild händelse (som i exemplet nedan) tar removeListener() bort den senast tillagda instansen. I exemplet tas once('ping') lyssnaren bort:

import { EventEmitter } from 'node:events';
const ee = new EventEmitter();

function pong() {
  console.log('pong');
}

ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);

ee.emit('ping');
ee.emit('ping');

Returnerar en referens till EventEmitter, så att anrop kan länkas.

setMaxListeners(number)

Som standard skriver EventEmitterut en varning om fler än 10 lyssnare läggs till för en viss händelse. Det här är ett användbart standardvärde som hjälper dig att hitta minnesläckor. Med metoden emitter.setMaxListeners() kan gränsen ändras för den här specifika EventEmitter instansen. Värdet kan anges till Infinity (eller 0) för att ange ett obegränsat antal lyssnare.

Returnerar en referens till EventEmitter, så att anrop kan länkas.

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

Metodinformation

abandon(Message, (err?: Error, results?: MessageAbandoned) => void)

function abandon(message: Message, done: (err?: Error, results?: MessageAbandoned) => void)

Parametrar

message
Message
done

(err?: Error, results?: MessageAbandoned) => void

complete(Message, (err?: Error, result?: MessageCompleted) => void)

function complete(message: Message, done: (err?: Error, result?: MessageCompleted) => void)

Parametrar

message
Message
done

(err?: Error, result?: MessageCompleted) => void

connect((err?: Error, result?: Connected) => void)

function connect(done: (err?: Error, result?: Connected) => void)

Parametrar

done

(err?: Error, result?: Connected) => void

disableC2D((err?: Error) => void)

function disableC2D(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

disableInputMessages((err?: Error) => void)

function disableInputMessages(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

disableMethods((err?: Error) => void)

function disableMethods(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

disableTwinDesiredPropertiesUpdates((err?: Error) => void)

function disableTwinDesiredPropertiesUpdates(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

disconnect((err?: Error, result?: Disconnected) => void)

function disconnect(done: (err?: Error, result?: Disconnected) => void)

Parametrar

done

(err?: Error, result?: Disconnected) => void

enableC2D((err?: Error) => void)

function enableC2D(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

enableInputMessages((err?: Error) => void)

function enableInputMessages(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

enableMethods((err?: Error) => void)

function enableMethods(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

enableTwinDesiredPropertiesUpdates((err?: Error) => void)

function enableTwinDesiredPropertiesUpdates(callback: (err?: Error) => void)

Parametrar

callback

(err?: Error) => void

getTwin((err?: Error, twin?: TwinProperties) => void)

function getTwin(callback: (err?: Error, twin?: TwinProperties) => void)

Parametrar

callback

(err?: Error, twin?: TwinProperties) => void

on("connected", () => void)

function on(type: "connected", func: () => void): DeviceTransport

Parametrar

type

"connected"

func

() => void

Returer

on("disconnect", (err?: Error) => void)

function on(type: "disconnect", func: (err?: Error) => void): DeviceTransport

Parametrar

type

"disconnect"

func

(err?: Error) => void

Returer

on("error", (err: Error) => void)

function on(type: "error", func: (err: Error) => void): DeviceTransport

Parametrar

type

"error"

func

(err: Error) => void

Returer

on("inputMessage", (inputName: string, msg: Message) => void)

function on(type: "inputMessage", func: (inputName: string, msg: Message) => void): DeviceTransport

Parametrar

type

"inputMessage"

func

(inputName: string, msg: Message) => void

Returer

on("message", (msg: Message) => void)

function on(type: "message", func: (msg: Message) => void): DeviceTransport

Parametrar

type

"message"

func

(msg: Message) => void

Returer

on("twinDesiredPropertiesUpdate", (desiredProps: any) => void)

function on(type: "twinDesiredPropertiesUpdate", func: (desiredProps: any) => void): DeviceTransport

Parametrar

type

"twinDesiredPropertiesUpdate"

func

(desiredProps: any) => void

Returer

onDeviceMethod(string, (request: MethodMessage, response: DeviceMethodResponse) => void)

function onDeviceMethod(methodName: string, methodCallback: (request: MethodMessage, response: DeviceMethodResponse) => void)

Parametrar

methodName

string

methodCallback

(request: MethodMessage, response: DeviceMethodResponse) => void

reject(Message, (err?: Error, results?: MessageRejected) => void)

function reject(message: Message, done: (err?: Error, results?: MessageRejected) => void)

Parametrar

message
Message
done

(err?: Error, results?: MessageRejected) => void

sendEvent(Message, (err?: Error, result?: MessageEnqueued) => void)

function sendEvent(message: Message, done: (err?: Error, result?: MessageEnqueued) => void)

Parametrar

message
Message
done

(err?: Error, result?: MessageEnqueued) => void

sendEventBatch(Message[], (err?: Error, result?: MessageEnqueued) => void)

function sendEventBatch(messages: Message[], done: (err?: Error, result?: MessageEnqueued) => void)

Parametrar

messages

Message[]

done

(err?: Error, result?: MessageEnqueued) => void

sendMethodResponse(DeviceMethodResponse, (err?: Error, result?: any) => void)

function sendMethodResponse(response: DeviceMethodResponse, done?: (err?: Error, result?: any) => void)

Parametrar

done

(err?: Error, result?: any) => void

sendOutputEvent(string, Message, (err?: Error, result?: MessageEnqueued) => void)

function sendOutputEvent(outputName: string, message: Message, done: (err?: Error, result?: MessageEnqueued) => void)

Parametrar

outputName

string

message
Message
done

(err?: Error, result?: MessageEnqueued) => void

sendOutputEventBatch(string, Message[], (err?: Error, result?: MessageEnqueued) => void)

function sendOutputEventBatch(outputName: string, messages: Message[], done: (err?: Error, result?: MessageEnqueued) => void)

Parametrar

outputName

string

messages

Message[]

done

(err?: Error, result?: MessageEnqueued) => void

setOptions(DeviceClientOptions, (err?: Error, result?: TransportConfigured) => void)

function setOptions(options: DeviceClientOptions, done: (err?: Error, result?: TransportConfigured) => void)

Parametrar

done

(err?: Error, result?: TransportConfigured) => void

updateSharedAccessSignature(string, (err?: Error, result?: SharedAccessSignatureUpdated) => void)

function updateSharedAccessSignature(sharedAccessSignature: string, done: (err?: Error, result?: SharedAccessSignatureUpdated) => void)

Parametrar

sharedAccessSignature

string

done

(err?: Error, result?: SharedAccessSignatureUpdated) => void

updateTwinReportedProperties(any, (err?: Error) => void)

function updateTwinReportedProperties(patch: any, callback: (err?: Error) => void)

Parametrar

patch

any

callback

(err?: Error) => void

Ärvd metodinformation

addListener<K>(string | symbol, (args: any[]) => void)

Alias för emitter.on(eventName, listener).

function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

ärvs från EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Anropar synkront var och en av lyssnarna som registrerats för händelsen med namnet eventName, i den ordning de registrerades och skickar de angivna argumenten till var och en.

Returnerar true om händelsen hade lyssnare, false annars.

import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();

// First listener
myEmitter.on('event', function firstListener() {
  console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
  const parameters = args.join(', ');
  console.log(`event with parameters ${parameters} in third listener`);
});

console.log(myEmitter.listeners('event'));

myEmitter.emit('event', 1, 2, 3, 4, 5);

// Prints:
// [
//   [Function: firstListener],
//   [Function: secondListener],
//   [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
function emit<K>(eventName: string | symbol, args: AnyRest): boolean

Parametrar

eventName

string | symbol

args

AnyRest

Returer

boolean

ärvd från EventEmitter.emit

eventNames()

Returnerar en matris som visar de händelser som sändaren har registrerade lyssnare för. Värdena i matrisen är strängar eller Symbols.

import { EventEmitter } from 'node:events';

const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]

Returer

(string | symbol)[]

ärvd från EventEmitter.eventNames

getMaxListeners()

Returnerar det aktuella maximala lyssnarvärdet för EventEmitter som antingen anges av emitter.setMaxListeners(n) eller som standard till defaultMaxListeners.

function getMaxListeners(): number

Returer

number

ärvd från EventEmitter.getMaxListeners

listenerCount<K>(string | symbol, Function)

Returnerar antalet lyssnare som lyssnar efter händelsen med namnet eventName. Om listener anges returneras hur många gånger lyssnaren finns i listan över lyssnarna för händelsen.

function listenerCount<K>(eventName: string | symbol, listener?: Function): number

Parametrar

eventName

string | symbol

Namnet på händelsen som lyssnas efter

listener

Function

Händelsehanterarfunktionen

Returer

number

ärvd från EventEmitter.listenerCount

listeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<K>(eventName: string | symbol): Function[]

Parametrar

eventName

string | symbol

Returer

Function[]

ärvd från EventEmitter.listeners

off<K>(string | symbol, (args: any[]) => void)

Alias för emitter.removeListener().

function off<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

ärvd från EventEmitter.off

once<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.once('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

Som standard anropas händelselyssnare i den ordning de läggs till. Metoden emitter.prependOnceListener() kan användas som ett alternativ för att lägga till händelselyssnaren i början av lyssnarmatrisen.

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
//   a
function once<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

ärvd från EventEmitter.once

prependListener<K>(string | symbol, (args: any[]) => void)

Lägger till funktionen listener i början av lyssnarmatrisen för händelsen med namnet eventName. Inga kontroller görs för att se om listener redan har lagts till. Flera anrop som skickar samma kombination av eventName och listener resulterar i att listener läggs till och anropas flera gånger.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

ärvd från EventEmitter.prependListener

prependOnceListener<K>(string | symbol, (args: any[]) => void)

Lägger till en engångsfunktion förlistener för händelsen med namnet eventName till början av lyssnarmatrisen. Nästa gång eventName utlöses tas lyssnaren bort och anropas sedan.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

Namnet på händelsen.

listener

(args: any[]) => void

Återanropsfunktionen

Returer

ärvd från EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Returnerar en kopia av matrisen med lyssnare för händelsen med namnet eventName, inklusive eventuella omslutningar (till exempel de som skapats av .once()).

import { EventEmitter } from 'node:events';
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');
function rawListeners<K>(eventName: string | symbol): Function[]

Parametrar

eventName

string | symbol

Returer

Function[]

ärvd från EventEmitter.rawListeners

removeAllListeners(string | symbol)

Tar bort alla lyssnare eller de som anges eventName.

Det är dålig praxis att ta bort lyssnare som lagts till någon annanstans i koden, särskilt när den EventEmitter instansen skapades av någon annan komponent eller modul (t.ex. sockets eller filströmmar).

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function removeAllListeners(eventName?: string | symbol): DeviceTransport

Parametrar

eventName

string | symbol

Returer

ärvd från EventEmitter.removeAllListeners

removeListener<K>(string | symbol, (args: any[]) => void)

Tar bort den angivna listener från lyssnarmatrisen för händelsen med namnet eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() tar högst bort en instans av en lyssnare från lyssnarmatrisen. Om en enskild lyssnare har lagts till flera gånger i lyssnarmatrisen för den angivna eventNamemåste removeListener() anropas flera gånger för att ta bort varje instans.

När en händelse har genererats anropas alla lyssnare som är anslutna till den vid tidpunkten för avsändande i ordning. Detta innebär att alla removeListener()- eller removeAllListeners()-anrop efter avger och innan den senaste lyssnaren slutför körningen inte tar bort dem frånemit() pågår. Efterföljande händelser fungerar som förväntat.

import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();

const callbackA = () => {
  console.log('A');
  myEmitter.removeListener('event', callbackB);
};

const callbackB = () => {
  console.log('B');
};

myEmitter.on('event', callbackA);

myEmitter.on('event', callbackB);

// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
//   A
//   B

// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
//   A

Eftersom lyssnare hanteras med hjälp av en intern matris ändras positionsindexen för alla lyssnare som registrerats när lyssnaren tas bort. Detta påverkar inte i vilken ordning lyssnare anropas, men det innebär att alla kopior av lyssnarmatrisen som returneras av metoden emitter.listeners() måste återskapas.

När en enskild funktion har lagts till som hanterare flera gånger för en enskild händelse (som i exemplet nedan) tar removeListener() bort den senast tillagda instansen. I exemplet tas once('ping') lyssnaren bort:

import { EventEmitter } from 'node:events';
const ee = new EventEmitter();

function pong() {
  console.log('pong');
}

ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);

ee.emit('ping');
ee.emit('ping');

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport

Parametrar

eventName

string | symbol

listener

(args: any[]) => void

Returer

ärvd från EventEmitter.removeListener

setMaxListeners(number)

Som standard skriver EventEmitterut en varning om fler än 10 lyssnare läggs till för en viss händelse. Det här är ett användbart standardvärde som hjälper dig att hitta minnesläckor. Med metoden emitter.setMaxListeners() kan gränsen ändras för den här specifika EventEmitter instansen. Värdet kan anges till Infinity (eller 0) för att ange ett obegränsat antal lyssnare.

Returnerar en referens till EventEmitter, så att anrop kan länkas.

function setMaxListeners(n: number): DeviceTransport

Parametrar

n

number

Returer

Ärvd från EventEmitter.setMaxListeners

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)

Parametrar

error

Error

event

string | symbol

args

AnyRest

ärvd från EventEmitter.__@captureRejectionSymbol@141