Sdílet prostřednictvím


DeviceTransport interface

Extends

EventEmitter

Metody

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)

Zděděné metody

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

Alias pro emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Synchronně volá všechny naslouchací procesy zaregistrované pro událost s názvem eventName, v pořadí, v jakém byly zaregistrovány, předávání zadaných argumentů každému.

Vrátí true, pokud událost měla naslouchací procesy, false jinak.

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()

Vrátí pole se seznamem událostí, pro které má emiter zaregistrované naslouchací procesy. Hodnoty v poli jsou řetězce nebo 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()

Vrátí aktuální maximální hodnotu naslouchacího procesu pro EventEmitter, která je buď nastavena emitter.setMaxListeners(n), nebo je výchozí hodnota defaultMaxListeners.

listenerCount<K>(string | symbol, Function)

Vrátí počet naslouchacích procesů naslouchajících události s názvem eventName. Pokud listener, vrátí se v seznamu naslouchacích procesů události, kolikrát se naslouchací proces najde.

listeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem 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 pro emitter.removeListener().

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

Přidá jednorázovou funkcilistener pro událost s názvem eventName. Při příštím spuštění eventName se tento naslouchací proces odebere a potom se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí vyvolávají v pořadí, v jakém se přidávají. Metodu emitter.prependOnceListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacích procesů.

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)

Přidá funkci listener do začínající pole naslouchacích procesů pro událost s názvem eventName. Nejsou provedeny žádné kontroly, abyste zjistili, jestli už listener byla přidána. Více volání, která předávají stejnou kombinaci eventName a listener, způsobí přidání listener a volání několikrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Přidá jednorázovélistener funkce pro událost s názvem eventName do začínající pole naslouchacích procesů. Při příštím spuštění eventName se tento naslouchací proces odebere a potom se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

rawListeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName, včetně všech obálky (například těch vytvořených .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)

Odebere všechny naslouchací procesy nebo naslouchací procesy zadané eventName.

Je vhodné odebrat naslouchací procesy přidané jinde v kódu, zejména pokud byla instance EventEmitter vytvořená nějakou jinou komponentou nebo modulem (např. sokety nebo streamy souborů).

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Odebere zadanou listener z pole naslouchacího procesu pro událost s názvem eventName.

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

removeListener() odebere z pole naslouchacího procesu nanejvýš jednu instanci naslouchacího procesu. Pokud byl některý jeden naslouchací proces přidán vícekrát do pole naslouchacího procesu pro zadané eventName, pak removeListener() musí být volána vícekrát, aby bylo možné odebrat každou instanci.

Jakmile se událost vygeneruje, všechny naslouchací procesy, které jsou k ní připojeny v době generování, se volají v pořadí. To znamená, že všechny removeListener() nebo removeAllListeners() volání po vygenerování a před dokončením posledního naslouchacího procesu je neodeberou zemit() probíhajícího. Následné události se chovají podle očekávání.

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

Vzhledem k tomu, že naslouchací procesy se spravují pomocí interního pole, při volání se změní indexy pozice libovolného naslouchacího procesu registrovaného po odebrání naslouchacího procesu. To nebude mít vliv na pořadí, ve kterém se volají naslouchací procesy, ale znamená to, že všechny kopie pole naslouchacího procesu vrácené metodou emitter.listeners() bude potřeba znovu vytvořit.

Když je jedna funkce přidána jako obslužná rutina několikrát pro jednu událost (jako v příkladu níže), removeListener() odebere naposledy přidanou instanci. V příkladu se odebere naslouchací proces once('ping'):

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');

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

setMaxListeners(number)

Ve výchozím nastavení EventEmitters zobrazí upozornění, pokud se pro konkrétní událost přidá více než 10 naslouchací procesy. Toto je užitečné výchozí nastavení, které pomáhá najít nevrácenou paměť. Metoda emitter.setMaxListeners() umožňuje upravit limit pro tuto konkrétní instanci EventEmitter. Hodnotu lze nastavit na Infinity (nebo 0), aby bylo možné označit neomezený počet naslouchacích procesů.

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Podrobnosti metody

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

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

Parametry

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)

Parametry

message
Message
done

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

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

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

Parametry

done

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

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

done

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

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

(err?: Error) => void

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

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

Parametry

callback

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

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

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

Parametry

type

"connected"

func

() => void

Návraty

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

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

Parametry

type

"disconnect"

func

(err?: Error) => void

Návraty

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

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

Parametry

type

"error"

func

(err: Error) => void

Návraty

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

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

Parametry

type

"inputMessage"

func

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

Návraty

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

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

Parametry

type

"message"

func

(msg: Message) => void

Návraty

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

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

Parametry

type

"twinDesiredPropertiesUpdate"

func

(desiredProps: any) => void

Návraty

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

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

Parametry

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)

Parametry

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)

Parametry

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)

Parametry

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)

Parametry

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)

Parametry

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)

Parametry

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)

Parametry

done

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

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

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

Parametry

sharedAccessSignature

string

done

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

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

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

Parametry

patch

any

callback

(err?: Error) => void

Podrobnosti zděděných metod

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

Alias pro emitter.on(eventName, listener).

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

zděděno z EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Synchronně volá všechny naslouchací procesy zaregistrované pro událost s názvem eventName, v pořadí, v jakém byly zaregistrovány, předávání zadaných argumentů každému.

Vrátí true, pokud událost měla naslouchací procesy, false jinak.

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

Parametry

eventName

string | symbol

args

AnyRest

Návraty

boolean

zděděno z EventEmitter.emit

eventNames()

Vrátí pole se seznamem událostí, pro které má emiter zaregistrované naslouchací procesy. Hodnoty v poli jsou řetězce nebo 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)[]

Návraty

(string | symbol)[]

zděděno z EventEmitter.eventNames

getMaxListeners()

Vrátí aktuální maximální hodnotu naslouchacího procesu pro EventEmitter, která je buď nastavena emitter.setMaxListeners(n), nebo je výchozí hodnota defaultMaxListeners.

function getMaxListeners(): number

Návraty

number

zděděné z EventEmitter.getMaxListeners

listenerCount<K>(string | symbol, Function)

Vrátí počet naslouchacích procesů naslouchajících události s názvem eventName. Pokud listener, vrátí se v seznamu naslouchacích procesů události, kolikrát se naslouchací proces najde.

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

Parametry

eventName

string | symbol

Název události, pro kterou se naslouchá

listener

Function

Funkce obslužné rutiny události

Návraty

number

zděděno z EventEmitter.listenerCount

listeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem 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[]

Parametry

eventName

string | symbol

Návraty

Function[]

zděděné z EventEmitter.listeners

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

Alias pro emitter.removeListener().

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

zděděno z EventEmitter.off

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

Přidá jednorázovou funkcilistener pro událost s názvem eventName. Při příštím spuštění eventName se tento naslouchací proces odebere a potom se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí vyvolávají v pořadí, v jakém se přidávají. Metodu emitter.prependOnceListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacích procesů.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

zděděno z EventEmitter.once

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

Přidá funkci listener do začínající pole naslouchacích procesů pro událost s názvem eventName. Nejsou provedeny žádné kontroly, abyste zjistili, jestli už listener byla přidána. Více volání, která předávají stejnou kombinaci eventName a listener, způsobí přidání listener a volání několikrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

zděděno z EventEmitter.prependListener

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

Přidá jednorázovélistener funkce pro událost s názvem eventName do začínající pole naslouchacích procesů. Při příštím spuštění eventName se tento naslouchací proces odebere a potom se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

zděděno z EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName, včetně všech obálky (například těch vytvořených .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[]

Parametry

eventName

string | symbol

Návraty

Function[]

zděděné z EventEmitter.rawListeners

removeAllListeners(string | symbol)

Odebere všechny naslouchací procesy nebo naslouchací procesy zadané eventName.

Je vhodné odebrat naslouchací procesy přidané jinde v kódu, zejména pokud byla instance EventEmitter vytvořená nějakou jinou komponentou nebo modulem (např. sokety nebo streamy souborů).

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Návraty

zděděno z EventEmitter.removeAllListeners

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

Odebere zadanou listener z pole naslouchacího procesu pro událost s názvem eventName.

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

removeListener() odebere z pole naslouchacího procesu nanejvýš jednu instanci naslouchacího procesu. Pokud byl některý jeden naslouchací proces přidán vícekrát do pole naslouchacího procesu pro zadané eventName, pak removeListener() musí být volána vícekrát, aby bylo možné odebrat každou instanci.

Jakmile se událost vygeneruje, všechny naslouchací procesy, které jsou k ní připojeny v době generování, se volají v pořadí. To znamená, že všechny removeListener() nebo removeAllListeners() volání po vygenerování a před dokončením posledního naslouchacího procesu je neodeberou zemit() probíhajícího. Následné události se chovají podle očekávání.

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

Vzhledem k tomu, že naslouchací procesy se spravují pomocí interního pole, při volání se změní indexy pozice libovolného naslouchacího procesu registrovaného po odebrání naslouchacího procesu. To nebude mít vliv na pořadí, ve kterém se volají naslouchací procesy, ale znamená to, že všechny kopie pole naslouchacího procesu vrácené metodou emitter.listeners() bude potřeba znovu vytvořit.

Když je jedna funkce přidána jako obslužná rutina několikrát pro jednu událost (jako v příkladu níže), removeListener() odebere naposledy přidanou instanci. V příkladu se odebere naslouchací proces once('ping'):

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');

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

zděděno z EventEmitter.removeListener

setMaxListeners(number)

Ve výchozím nastavení EventEmitters zobrazí upozornění, pokud se pro konkrétní událost přidá více než 10 naslouchací procesy. Toto je užitečné výchozí nastavení, které pomáhá najít nevrácenou paměť. Metoda emitter.setMaxListeners() umožňuje upravit limit pro tuto konkrétní instanci EventEmitter. Hodnotu lze nastavit na Infinity (nebo 0), aby bylo možné označit neomezený počet naslouchacích procesů.

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

function setMaxListeners(n: number): DeviceTransport

Parametry

n

number

Návraty

zděděno z EventEmitter.setMaxListeners

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

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

Parametry

error

Error

event

string | symbol

args

AnyRest

zděděno z EventEmitter.__@captureRejectionSymbol@142