Freigeben über


Client class

Der IoT Hub-Dienstclient wird für die Kommunikation mit Geräten über einen Azure IoT-Hub verwendet. Er ermöglicht dem SDK-Benutzer:

  • Senden von Cloud-zu-Gerät (auch als Befehle bezeichnet) an Geräte: Befehle werden auf IoT Hub in die Warteschlange gestellt und werden nur asynchron bereitgestellt, wenn das Gerät verbunden ist. Pro Gerät können nur 50 Befehle in die Warteschlange gestellt werden.
  • Aufrufen direkter Methoden auf Geräten (die nur funktionieren, wenn das Gerät derzeit verbunden ist: es ist eine synchrone Methode der Kommunikation mit dem Gerät)
  • Auf Feedbackmeldungen lauschen, die von Geräten für vorherige Befehle gesendet wurden.
  • Auf Dateiuploadbenachrichtigungen von Geräten lauschen.

Benutzer sollten neue Client Instanzen erstellen, indem Sie eine der Factorymethoden aufrufen, fromConnectionString oder vonSharedAccessSignature, um einen IoT Hub-Dienstclient zu erstellen.

Extends

EventEmitter

Methoden

close()
close(IncomingMessageCallback<Disconnected>)

Schließt die Verbindung mit einem IoT-Hub.

fromConnectionString(string, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus der angegebenen Verbindungszeichenfolge mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

fromSharedAccessSignature(string, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus der angegebenen Freigegebenen Zugriffssignatur mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

fromTokenCredential(string, TokenCredential, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus dem angegebenen Azure-TokenCredential mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Gibt ein AmqpReceiver -Objekt zurück, das Ereignisse ausgibt, wenn neue Feedbacknachrichten vom Client empfangen werden.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Gibt ein AmqpReceiver -Objekt zurück, das Ereignisse ausgibt, wenn neue Dateiuploadbenachrichtigungen vom Client empfangen werden.

invokeDeviceMethod(string, DeviceMethodParams)
invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Ruft eine Methode auf einem bestimmten Gerät oder Modul auf.

invokeDeviceMethod(string, string, DeviceMethodParams)
invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)
open()
open(IncomingMessageCallback<Connected>)

Öffnet die Verbindung mit einem IoT-Hub.

send(string, Message | BufferConvertible)
send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Sendet eine Nachricht an ein Gerät.

setRetryPolicy(RetryPolicy)

Legen Sie die vom Client verwendete Richtlinie fest, um Netzwerkvorgänge erneut auszuführen.

Geerbte Methoden

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

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

emit<E>(string | symbol, any[])

Ruft die einzelnen Listener synchron auf, die für das Ereignis mit dem Namen eventNameregistriert wurden, in der Reihenfolge, in der sie registriert wurden, und übergibt die angegebenen Argumente an jedes Ereignis.

Gibt true zurück, wenn das Ereignis Listener hatte, false andernfalls.

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

Gibt ein Array zurück, das die Ereignisse auflistet, für die der Emitter Listener registriert hat.

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

Gibt den aktuellen Maximallistenerwert für die EventEmitter zurück, die entweder durch emitter.setMaxListeners(n) oder standardmäßig auf events.defaultMaxListenersfestgelegt ist.

listenerCount<E>(string | symbol, (args: any[]) => void)

Gibt die Anzahl der Listener zurück, die auf das Ereignis mit dem Namen eventNamelauschen. Wenn listener angegeben wird, wird zurückgegeben, wie oft der Listener in der Liste der Listener des Ereignisses gefunden wird.

listeners<E>(string | symbol)

Gibt eine Kopie des Arrays von Listenern für das Ereignis mit dem Namen eventNamezurück.

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

Alias für emitter.removeListener().

on<E>(string | symbol, (args: any[]) => void)

Fügt die listener-Funktion am Ende des Listenerarrays für das Ereignis mit dem Namen eventNamehinzu. Es werden keine Überprüfungen vorgenommen, um festzustellen, ob die listener bereits hinzugefügt wurde. Mehrere Aufrufe, die dieselbe Kombination aus eventName übergeben, und listener führen dazu, dass die listener mehrmals hinzugefügt und aufgerufen wird.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

Standardmäßig werden Ereignislistener in der Reihenfolge aufgerufen, in der sie hinzugefügt werden. Die emitter.prependListener()-Methode kann als Alternative zum Hinzufügen des Ereignislisteners zum Anfang des Listenersarrays verwendet werden.

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
once<E>(string | symbol, (args: any[]) => void)

Fügt eine einmaligelistener-Funktion für das Ereignis mit dem Namen eventNamehinzu. Wenn eventName das nächste Mal ausgelöst wird, wird dieser Listener entfernt und dann aufgerufen.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

Standardmäßig werden Ereignislistener in der Reihenfolge aufgerufen, in der sie hinzugefügt werden. Die emitter.prependOnceListener()-Methode kann als Alternative zum Hinzufügen des Ereignislisteners zum Anfang des Listenersarrays verwendet werden.

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

Fügt die listener-Funktion dem beginnenden des Listenersarrays für das Ereignis mit dem Namen eventNamehinzu. Es werden keine Überprüfungen vorgenommen, um festzustellen, ob die listener bereits hinzugefügt wurde. Mehrere Aufrufe, die dieselbe Kombination aus eventName übergeben, und listener führen dazu, dass die listener mehrmals hinzugefügt und aufgerufen wird.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

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

Fügt dem beginnenden des Listenersarrays eine listenereventName Funktion für das Ereignis hinzu, das genannt wird. Wenn eventName das nächste Mal ausgelöst wird, wird dieser Listener entfernt und dann aufgerufen.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

rawListeners<E>(string | symbol)

Gibt eine Kopie des Arrays von Listenern für das Ereignis mit dem Namen eventNamezurück, einschließlich aller Wrapper (z. B. von .once()erstellt).

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<E>(string | symbol)

Entfernt alle Listener oder die der angegebenen eventName.

Es empfiehlt sich, Listener zu entfernen, die an anderer Stelle im Code hinzugefügt wurden, insbesondere, wenn die EventEmitter Instanz von einer anderen Komponente oder einem anderen Modul (z. B. Sockets oder Dateistreams) erstellt wurde.

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

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

Entfernt die angegebene listener aus dem Listenerarray für das Ereignis mit dem Namen eventName.

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

removeListener() entfernt höchstens eine Instanz eines Listeners aus dem Listenerarray. Wenn ein einzelner Listener mehrmals zum Listenerarray für die angegebene eventNamehinzugefügt wurde, muss removeListener() mehrmals aufgerufen werden, um jede Instanz zu entfernen.

Sobald ein Ereignis ausgegeben wird, werden alle listener, die zum Zeitpunkt der Ausstrahlung an sie angefügt sind, in der Reihenfolge aufgerufen. Das bedeutet, dass alle oder removeListener() Aufrufe removeAllListeners()nach der Ausstrahlung und bevor der letzte Hörer die Ausführung beendet hat, sie nicht aus emit() dem laufenden Ablauf entfernen. Nachfolgende Ereignisse verhalten sich wie erwartet.

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

Da Hörer über ein internes Array verwaltet werden, ändert das Aufrufen dieses Hörers die Positionsindizes jedes nach der Entfernung registrierten Listeners. Dies wirkt sich nicht auf die Reihenfolge aus, in der Listener aufgerufen werden. Dies bedeutet jedoch, dass alle Kopien des Listenerarrays, wie sie von der emitter.listeners()-Methode zurückgegeben werden, neu erstellt werden müssen.

Wenn eine einzelne Funktion mehrmals als Handler für ein einzelnes Ereignis (wie im folgenden Beispiel) hinzugefügt wurde, entfernt removeListener() die zuletzt hinzugefügte Instanz. Im Beispiel wird der once('ping') Listener entfernt:

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

setMaxListeners(number)

Standardmäßig druckt EventEmitters eine Warnung, wenn für ein bestimmtes Ereignis mehr als 10 Listener hinzugefügt werden. Dies ist ein nützlicher Standardwert, der hilft, Speicherverluste zu finden. Mit der emitter.setMaxListeners()-Methode kann der Grenzwert für diese spezifische EventEmitter Instanz geändert werden. Der Wert kann auf Infinity (oder 0) festgelegt werden, um eine unbegrenzte Anzahl von Listenern anzugeben.

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

[captureRejectionSymbol](Error, string | symbol, any[])

Die Methode Symbol.for('nodejs.rejection') wird aufgerufen, wenn eine Versprechensablehnung beim Aussenden eines Ereignisses auftritt und captureRejections auf dem Emitter aktiviert ist. Es ist möglich, anstelle von events.captureRejectionSymbolzu verwendenSymbol.for('nodejs.rejection').

import { EventEmitter, captureRejectionSymbol } from 'node:events';

class MyClass extends EventEmitter {
  constructor() {
    super({ captureRejections: true });
  }

  [captureRejectionSymbol](err, event, ...args) {
    console.log('rejection happened for', event, 'with', err, ...args);
    this.destroy(err);
  }

  destroy(err) {
    // Tear the resource down here.
  }
}

Details zur Methode

close()

function close(): Promise<ResultWithIncomingMessage<Disconnected>>

Gibt zurück

Promise<ResultWithIncomingMessage<Disconnected>>

close(IncomingMessageCallback<Disconnected>)

Schließt die Verbindung mit einem IoT-Hub.

function close(done?: IncomingMessageCallback<Disconnected>)

Parameter

done

IncomingMessageCallback<Disconnected>

Die optionale Funktion, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist. done wird ein Error-Objektargument übergeben, das null ist, wenn der Vorgang erfolgreich abgeschlossen wurde.

fromConnectionString(string, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus der angegebenen Verbindungszeichenfolge mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

static function fromConnectionString(connStr: string, transportCtor?: TransportCtor): Client

Parameter

connStr

string

Eine Verbindungszeichenfolge, die Berechtigungen für "Geräteverbindung" auf einem IoT-Hub kapselt.

transportCtor
TransportCtor

Gibt zurück

fromSharedAccessSignature(string, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus der angegebenen Freigegebenen Zugriffssignatur mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor?: TransportCtor): Client

Parameter

sharedAccessSignature

string

Eine Gemeinsame Zugriffssignatur, die Berechtigungen für "Service Connect" auf einem IoT-Hub kapselt.

transportCtor
TransportCtor

Gibt zurück

fromTokenCredential(string, TokenCredential, TransportCtor)

Erstellt einen IoT Hub-Dienstclient aus dem angegebenen Azure-TokenCredential mithilfe des Standardtransports (Amqp) oder des im zweiten Argument angegebenen.

static function fromTokenCredential(hostName: string, tokenCredential: TokenCredential, transportCtor?: TransportCtor): Client

Parameter

hostName

string

Hostname des Azure-Diensts.

tokenCredential
TokenCredential

Azure TokenCredential, die für die Authentifizierung beim Azure-Dienst verwendet werden

transportCtor
TransportCtor

Gibt zurück

getFeedbackReceiver()

function getFeedbackReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Gibt zurück

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Gibt ein AmqpReceiver -Objekt zurück, das Ereignisse ausgibt, wenn neue Feedbacknachrichten vom Client empfangen werden.

function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parameter

done

IncomingMessageCallback<ServiceReceiver>

Die optionale Funktion, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist. done wird mit zwei Argumenten aufgerufen: ein Error-Objekt (kann null sein) und ein AmqpReceiver-Objekt.

getFileNotificationReceiver()

function getFileNotificationReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Gibt zurück

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Gibt ein AmqpReceiver -Objekt zurück, das Ereignisse ausgibt, wenn neue Dateiuploadbenachrichtigungen vom Client empfangen werden.

function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parameter

done

IncomingMessageCallback<ServiceReceiver>

Die optionale Funktion, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist. done wird mit zwei Argumenten aufgerufen: ein Error-Objekt (kann null sein) und ein AmqpReceiver-Objekt.

invokeDeviceMethod(string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parameter

deviceId

string

methodParams
DeviceMethodParams

Gibt zurück

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Ruft eine Methode auf einem bestimmten Gerät oder Modul auf.

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>)

Parameter

deviceId

string

Der Bezeichner einer vorhandenen Geräteidentität.

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

Der optionale Rückruf, der mit dem Ergebnis der Methodenausführung aufgerufen werden soll.

invokeDeviceMethod(string, string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parameter

deviceId

string

moduleId

string

methodParams
DeviceMethodParams

Gibt zurück

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams, done: IncomingMessageCallback<any>)

Parameter

deviceId

string

moduleId

string

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

open()

function open(): Promise<ResultWithIncomingMessage<Connected>>

Gibt zurück

Promise<ResultWithIncomingMessage<Connected>>

open(IncomingMessageCallback<Connected>)

Öffnet die Verbindung mit einem IoT-Hub.

function open(done?: IncomingMessageCallback<Connected>)

Parameter

done

IncomingMessageCallback<Connected>

Die optionale Funktion, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist. done wird ein Error-Objektargument übergeben, das null ist, wenn der Vorgang erfolgreich abgeschlossen wurde.

send(string, Message | BufferConvertible)

function send(deviceId: string, message: Message | BufferConvertible): Promise<ResultWithIncomingMessage<MessageEnqueued>>

Parameter

deviceId

string

message

Message | BufferConvertible

Gibt zurück

Promise<ResultWithIncomingMessage<MessageEnqueued>>

send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Sendet eine Nachricht an ein Gerät.

function send(deviceId: string, message: Message | BufferConvertible, done?: IncomingMessageCallback<MessageEnqueued>)

Parameter

deviceId

string

Der Bezeichner einer vorhandenen Geräteidentität.

message

Message | BufferConvertible

Der Textkörper der Nachricht, die an das Gerät gesendet werden soll. Wenn message nicht vom Typ Nachrichtist, wird sie konvertiert.

done

IncomingMessageCallback<MessageEnqueued>

Die optionale Funktion, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist. done wird mit zwei Argumenten aufgerufen: ein Error-Objekt (kann null sein) und ein transportspezifisches Antwortobjekt, das für die Protokollierung oder das Debuggen nützlich ist.

setRetryPolicy(RetryPolicy)

Legen Sie die vom Client verwendete Richtlinie fest, um Netzwerkvorgänge erneut auszuführen.

function setRetryPolicy(policy: RetryPolicy)

Parameter

policy

RetryPolicy

Richtlinie, die zum Wiederholen von Vorgängen verwendet wird (z. B. öffnen, senden usw.). Das SDK enthält zwei integrierte Richtlinien: ExponentialBackoffWithJitter (Standard) und NoRetry (zum Abbrechen eines Wiederholungsversuchs). Der Benutzer kann auch sein eigenes Objekt übergeben, solange es 2 Methoden implementiert: - shouldRetry(err: Error): boolean : gibt an, ob ein Vorgang basierend auf dem Fehlertyp wiederholt werden soll - nextRetryTimeout(retryCount: number, gedrosselt: boolean): Zahl: Gibt die Wartezeit (in Millisekunden) zurück, bevor sie basierend auf der letzten Anzahl von Versuchen (retryCount) erneut versucht wird, und die Tatsache, dass der Fehler ein Einschränkungsfehler ist oder nicht.

Details zur geerbten Methode

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

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

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

Parameter

eventName

string | symbol

listener

(args: any[]) => void

Gibt zurück

Geerbt von EventEmitter.addListener

emit<E>(string | symbol, any[])

Ruft die einzelnen Listener synchron auf, die für das Ereignis mit dem Namen eventNameregistriert wurden, in der Reihenfolge, in der sie registriert wurden, und übergibt die angegebenen Argumente an jedes Ereignis.

Gibt true zurück, wenn das Ereignis Listener hatte, false andernfalls.

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<E>(eventName: string | symbol, args: any[]): boolean

Parameter

eventName

string | symbol

args

any[]

Gibt zurück

boolean

von EventEmitter.emit geerbt

eventNames()

Gibt ein Array zurück, das die Ereignisse auflistet, für die der Emitter Listener registriert hat.

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)[]

Gibt zurück

(string | symbol)[]

Geerbt von EventEmitter.eventNames

getMaxListeners()

Gibt den aktuellen Maximallistenerwert für die EventEmitter zurück, die entweder durch emitter.setMaxListeners(n) oder standardmäßig auf events.defaultMaxListenersfestgelegt ist.

function getMaxListeners(): number

Gibt zurück

number

Geerbt von EventEmitter.getMaxListeners

listenerCount<E>(string | symbol, (args: any[]) => void)

Gibt die Anzahl der Listener zurück, die auf das Ereignis mit dem Namen eventNamelauschen. Wenn listener angegeben wird, wird zurückgegeben, wie oft der Listener in der Liste der Listener des Ereignisses gefunden wird.

function listenerCount<E>(eventName: string | symbol, listener?: (args: any[]) => void): number

Parameter

eventName

string | symbol

Der Name des Ereignisses, auf das gewartet wird

listener

(args: any[]) => void

Die Ereignishandlerfunktion

Gibt zurück

number

geerbt von EventEmitter.listenerCount

listeners<E>(string | symbol)

Gibt eine Kopie des Arrays von Listenern für das Ereignis mit dem Namen eventNamezurück.

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

Parameter

eventName

string | symbol

Gibt zurück

(args: any[]) => void[]

von EventEmitter.listeners geerbt

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

Alias für emitter.removeListener().

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

Parameter

eventName

string | symbol

listener

(args: any[]) => void

Gibt zurück

von EventEmitter.off geerbt

on<E>(string | symbol, (args: any[]) => void)

Fügt die listener-Funktion am Ende des Listenerarrays für das Ereignis mit dem Namen eventNamehinzu. Es werden keine Überprüfungen vorgenommen, um festzustellen, ob die listener bereits hinzugefügt wurde. Mehrere Aufrufe, die dieselbe Kombination aus eventName übergeben, und listener führen dazu, dass die listener mehrmals hinzugefügt und aufgerufen wird.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

Standardmäßig werden Ereignislistener in der Reihenfolge aufgerufen, in der sie hinzugefügt werden. Die emitter.prependListener()-Methode kann als Alternative zum Hinzufügen des Ereignislisteners zum Anfang des Listenersarrays verwendet werden.

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
function on<E>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parameter

eventName

string | symbol

Der Name des Ereignisses.

listener

(args: any[]) => void

Die Rückruffunktion

Gibt zurück

von EventEmitter.on geerbt

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

Fügt eine einmaligelistener-Funktion für das Ereignis mit dem Namen eventNamehinzu. Wenn eventName das nächste Mal ausgelöst wird, wird dieser Listener entfernt und dann aufgerufen.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

Standardmäßig werden Ereignislistener in der Reihenfolge aufgerufen, in der sie hinzugefügt werden. Die emitter.prependOnceListener()-Methode kann als Alternative zum Hinzufügen des Ereignislisteners zum Anfang des Listenersarrays verwendet werden.

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<E>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parameter

eventName

string | symbol

Der Name des Ereignisses.

listener

(args: any[]) => void

Die Rückruffunktion

Gibt zurück

von EventEmitter geerbt.once

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

Fügt die listener-Funktion dem beginnenden des Listenersarrays für das Ereignis mit dem Namen eventNamehinzu. Es werden keine Überprüfungen vorgenommen, um festzustellen, ob die listener bereits hinzugefügt wurde. Mehrere Aufrufe, die dieselbe Kombination aus eventName übergeben, und listener führen dazu, dass die listener mehrmals hinzugefügt und aufgerufen wird.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

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

Parameter

eventName

string | symbol

Der Name des Ereignisses.

listener

(args: any[]) => void

Die Rückruffunktion

Gibt zurück

Geerbt von EventEmitter.prependListener

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

Fügt dem beginnenden des Listenersarrays eine listenereventName Funktion für das Ereignis hinzu, das genannt wird. Wenn eventName das nächste Mal ausgelöst wird, wird dieser Listener entfernt und dann aufgerufen.

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

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

Parameter

eventName

string | symbol

Der Name des Ereignisses.

listener

(args: any[]) => void

Die Rückruffunktion

Gibt zurück

geerbt von EventEmitter.prependOnceListener

rawListeners<E>(string | symbol)

Gibt eine Kopie des Arrays von Listenern für das Ereignis mit dem Namen eventNamezurück, einschließlich aller Wrapper (z. B. von .once()erstellt).

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<E>(eventName: string | symbol): (args: any[]) => void[]

Parameter

eventName

string | symbol

Gibt zurück

(args: any[]) => void[]

von EventEmitter.rawListeners geerbt

removeAllListeners<E>(string | symbol)

Entfernt alle Listener oder die der angegebenen eventName.

Es empfiehlt sich, Listener zu entfernen, die an anderer Stelle im Code hinzugefügt wurden, insbesondere, wenn die EventEmitter Instanz von einer anderen Komponente oder einem anderen Modul (z. B. Sockets oder Dateistreams) erstellt wurde.

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

function removeAllListeners<E>(eventName?: string | symbol): Client

Parameter

eventName

string | symbol

Gibt zurück

geerbt von EventEmitter.removeAllListeners

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

Entfernt die angegebene listener aus dem Listenerarray für das Ereignis mit dem Namen eventName.

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

removeListener() entfernt höchstens eine Instanz eines Listeners aus dem Listenerarray. Wenn ein einzelner Listener mehrmals zum Listenerarray für die angegebene eventNamehinzugefügt wurde, muss removeListener() mehrmals aufgerufen werden, um jede Instanz zu entfernen.

Sobald ein Ereignis ausgegeben wird, werden alle listener, die zum Zeitpunkt der Ausstrahlung an sie angefügt sind, in der Reihenfolge aufgerufen. Das bedeutet, dass alle oder removeListener() Aufrufe removeAllListeners()nach der Ausstrahlung und bevor der letzte Hörer die Ausführung beendet hat, sie nicht aus emit() dem laufenden Ablauf entfernen. Nachfolgende Ereignisse verhalten sich wie erwartet.

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

Da Hörer über ein internes Array verwaltet werden, ändert das Aufrufen dieses Hörers die Positionsindizes jedes nach der Entfernung registrierten Listeners. Dies wirkt sich nicht auf die Reihenfolge aus, in der Listener aufgerufen werden. Dies bedeutet jedoch, dass alle Kopien des Listenerarrays, wie sie von der emitter.listeners()-Methode zurückgegeben werden, neu erstellt werden müssen.

Wenn eine einzelne Funktion mehrmals als Handler für ein einzelnes Ereignis (wie im folgenden Beispiel) hinzugefügt wurde, entfernt removeListener() die zuletzt hinzugefügte Instanz. Im Beispiel wird der once('ping') Listener entfernt:

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

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

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

Parameter

eventName

string | symbol

listener

(args: any[]) => void

Gibt zurück

Geerbt von EventEmitter.removeListener

setMaxListeners(number)

Standardmäßig druckt EventEmitters eine Warnung, wenn für ein bestimmtes Ereignis mehr als 10 Listener hinzugefügt werden. Dies ist ein nützlicher Standardwert, der hilft, Speicherverluste zu finden. Mit der emitter.setMaxListeners()-Methode kann der Grenzwert für diese spezifische EventEmitter Instanz geändert werden. Der Wert kann auf Infinity (oder 0) festgelegt werden, um eine unbegrenzte Anzahl von Listenern anzugeben.

Gibt einen Verweis auf die EventEmitterzurück, sodass Aufrufe verkettet werden können.

function setMaxListeners(n: number): Client

Parameter

n

number

Gibt zurück

Geerbt von EventEmitter.setMaxListeners

[captureRejectionSymbol](Error, string | symbol, any[])

Die Methode Symbol.for('nodejs.rejection') wird aufgerufen, wenn eine Versprechensablehnung beim Aussenden eines Ereignisses auftritt und captureRejections auf dem Emitter aktiviert ist. Es ist möglich, anstelle von events.captureRejectionSymbolzu verwendenSymbol.for('nodejs.rejection').

import { EventEmitter, captureRejectionSymbol } from 'node:events';

class MyClass extends EventEmitter {
  constructor() {
    super({ captureRejections: true });
  }

  [captureRejectionSymbol](err, event, ...args) {
    console.log('rejection happened for', event, 'with', err, ...args);
    this.destroy(err);
  }

  destroy(err) {
    // Tear the resource down here.
  }
}
function [captureRejectionSymbol](error: Error, event: string | symbol, args: any[])

Parameter

error

Error

event

string | symbol

args

any[]

Geerbt von EventEmitter.__@captureRejectionSymbol@90