Client class

Le client de service IoT Hub est utilisé pour communiquer avec les appareils via un hub Azure IoT. Il permet à l’utilisateur du Kit de développement logiciel (SDK) :

  • envoyer des commandes cloud-à-appareil (également appelées commandes) aux appareils : les commandes sont mises en file d’attente sur IoT Hub et remises de manière asynchrone uniquement lorsque l’appareil est connecté. Seules 50 commandes peuvent être mises en file d’attente par appareil.
  • appeler des méthodes directes sur des appareils (qui fonctionnent uniquement si l’appareil est actuellement connecté : il s’agit d’un moyen synchrone de communiquer avec l’appareil)
  • écoutez les messages de commentaires envoyés par les appareils pour les commandes précédentes.
  • écoutez les notifications de chargement de fichiers à partir d’appareils.

Les utilisateurs doivent créer de nouvelles instances Client en appelant l’une des méthodes de fabrique, fromConnectionString ou à partir deSharedAccessSignature, pour créer un client de service IoT Hub.

Extends

EventEmitter

Propriétés héritées

captureRejections

Valeur : booléen

Changez l’option par défaut captureRejections sur tous les nouveaux EventEmitter objets.

captureRejectionSymbol

Valeur : Symbol.for('nodejs.rejection')

Voyez comment écrire un fichier personnalisé rejection handler.

defaultMaxListeners

Par défaut, un maximum d’auditeurs 10 peut être inscrit à un seul événement. Cette limite peut être modifiée pour chaque EventEmitter instance en utilisant la emitter.setMaxListeners(n) méthode. Pour changer la valeur par défaut pour toutesEventEmitter les instances, la events.defaultMaxListeners propriété peut être utilisée. Si cette valeur n’est pas un nombre positif, a RangeError est lancé.

Soyez prudent lors de la mise en place car events.defaultMaxListeners le changement affecte toutesEventEmitter les instances, y compris celles créées avant la modification. Cependant, appeler emitter.setMaxListeners(n) a toujours une priorité sur events.defaultMaxListeners.

Ce n’est pas une limite stricte. L’instance EventEmitter permettra d’ajouter plus d’auditeurs mais enverra un avertissement de trace à stderr indiquant qu’une « fuite mémoire possible EventEmitter » a été détectée. Pour tout , EventEmitterles emitter.getMaxListeners() méthodes et emitter.setMaxListeners() peuvent être utilisées pour éviter temporairement cet avertissement :

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

Le --trace-warnings drapeau de ligne de commande peut être utilisé pour afficher la trace de pile pour de tels avertissements.

L’avertissement émis peut être inspecté avec process.on('warning') et aura les propriétés supplémentaires emitter, type, et count , faisant référence respectivement à l’instance de l’émetteur d’événement, au nom de l’événement et au nombre d’auditeurs attachés. Sa name propriété est fixée à 'MaxListenersExceededWarning'.

errorMonitor

Ce symbole doit être utilisé pour installer un écouteur uniquement pour surveiller 'error' les événements. Les auditeurs installés avec ce symbole sont appelés avant que les auditeurs réguliers 'error' ne soient appelés.

L’installation d’un écouteur utilisant ce symbole ne change pas le comportement une fois qu’un 'error' événement est émis. Par conséquent, le processus plante toujours si aucun auditeur régulier 'error' n’est installé.

Méthodes

close()
close(IncomingMessageCallback<Disconnected>)

Ferme la connexion à un hub IoT.

fromConnectionString(string, TransportCtor)

Crée un client de service IoT Hub à partir de la chaîne de connexion donnée à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

fromSharedAccessSignature(string, TransportCtor)

Crée un client de service IoT Hub à partir de la signature d’accès partagé donnée à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

fromTokenCredential(string, TokenCredential, TransportCtor)

Crée un client de service IoT Hub à partir du jeton AzureCredential donné à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Retourne un objet AmqpReceiver qui émet des événements lorsque de nouveaux messages de commentaires sont reçus par le client.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Retourne un objet AmqpReceiver qui émet des événements lorsque de nouvelles notifications de chargement de fichier sont reçues par le client.

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

Appelle une méthode sur un appareil ou un module particulier.

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

Ouvre la connexion à un hub IoT.

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

Envoie un message à un appareil.

setRetryPolicy(RetryPolicy)

Définissez la stratégie utilisée par le client pour réessayer les opérations réseau.

Méthodes héritées

addAbortListener(AbortSignal, (event: Event) => void)

Écoute une fois l’événement abort sur le point fourni signal.

Écouter l’événement abort sur les signaux d’interruption est dangereux et peut entraîner des fuites de ressources puisque un autre tiers possédant le signal peut appeler e.stopImmediatePropagation(). Malheureusement, Node.js ne peut pas changer cela car cela violerait la norme web. De plus, l’API originale permet d’oublier facilement de supprimer les auditeurs.

Cette API permet d’utiliser AbortSignalen toute sécurité s dans Node.js API en résolvant ces deux problèmes en écoutant l’événement de manière à stopImmediatePropagation ne pas empêcher l’écouteur de s’exécuter.

Retourne un jetable pour qu’il puisse être plus facilement désabonné.

import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}
addListener<K>(string | symbol, (args: any[]) => void)

Alias pour emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Appelle de manière synchrone chacun des écouteurs inscrits pour l’événement nommé eventName, dans l’ordre dans lequel ils ont été inscrits, en passant les arguments fournis à chacun d’eux.

Retourne true si l’événement avait des écouteurs, false sinon.

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

Retourne un tableau répertoriant les événements pour lesquels l’émetteur a enregistré des écouteurs. Les valeurs du tableau sont des chaînes ou des 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) ]
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName.

Pour EventEmitters, cela se comporte exactement de la même manière que d’appeler .listeners l’émetteur.

Pour EventTargets, c’est la seule façon d’obtenir les auditeurs de l’événement pour la cible de l’événement. Cela est utile pour le débogage et le diagnostic.

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

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
getMaxListeners()

Retourne la valeur maximale actuelle de l’écouteur pour l'EventEmitter qui est définie par emitter.setMaxListeners(n) ou par défaut sur <xref:EventEmitter.defaultMaxListeners>.

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Rend le nombre maximal d’auditeurs actuellement fixé.

Pour EventEmitters, cela se comporte exactement de la même manière que d’appeler .getMaxListeners l’émetteur.

Pour EventTargets, c’est la seule façon d’obtenir le maximum d’auditeurs d’événements pour la cible d’événement. Si le nombre de gestionnaires d’événements sur un seul EventTarget dépasse le set maximal, l’EventTarget affichera un avertissement.

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Une méthode de classe qui retourne le nombre d’auditeurs pour le donné eventName enregistré sur le .emitter

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

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
listenerCount<K>(string | symbol, Function)

Retourne le nombre d’écouteurs à l’écoute de l’événement nommé eventName. Si listener est fourni, il retourne le nombre de fois où l’écouteur est trouvé dans la liste des écouteurs de l’événement.

listeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé 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 pour emitter.removeListener().

on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)
import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

Des retours qui AsyncIterator itèrent eventName les événements. Il projette si l’émet EventEmitter'error'. Il supprime tous les auditeurs lors de la sortie de la boucle. Le value rendu par chaque itération est un tableau composé des arguments des événements émis.

An peut être utilisé pour annuler l’attente AbortSignal des événements :

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

Utilisez l’option close pour spécifier un tableau de noms d’événements qui mettra fin à l’itération :

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
on(EventTarget, string, StaticEventEmitterIteratorOptions)
on<K>(string | symbol, (args: any[]) => void)

Ajoute la fonction listener à la fin du tableau d’écouteurs pour l’événement nommé eventName. Aucune vérification n’est effectuée pour voir si le listener a déjà été ajouté. Plusieurs appels passant la même combinaison de eventName et de listener entraînent l’ajout de la listener et l’appel, plusieurs fois.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

Par défaut, les écouteurs d’événements sont appelés dans l’ordre dans lequel ils sont ajoutés. La méthode emitter.prependListener() peut être utilisée comme alternative pour ajouter l’écouteur d’événements au début du tableau d’écouteurs.

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(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Crée un Promise qui est rempli lorsque le EventEmitter émet l’événement donné ou qui est rejeté si le EventEmitter émet 'error' en attendant. Le Promise règlement se résoudra avec un tableau de tous les arguments émis à l’événement donné.

Cette méthode est volontairement générique et fonctionne avec l’interface EventTarget de la plateforme web, qui ne possède aucune sémantique d’événement spécial'error' et n’écoute pas l’événement 'error' .

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

La gestion spéciale de l’événement 'error' n’est utilisée que lorsqu’il events.once() est utilisé pour attendre un autre événement. Si events.once() est utilisé pour attendre l’événement 'error' lui-même, alors il est traité comme tout autre type d’événement sans traitement spécial :

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

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An peut être utilisé pour annuler l’attente AbortSignal de l’événement :

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

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
once(EventTarget, string, StaticEventEmitterOptions)
once<K>(string | symbol, (args: any[]) => void)

Ajoute une fonction listener unique pour l’événement nommé eventName. La prochaine fois que eventName est déclenchée, cet écouteur est supprimé, puis appelé.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

Par défaut, les écouteurs d’événements sont appelés dans l’ordre dans lequel ils sont ajoutés. La méthode emitter.prependOnceListener() peut être utilisée comme alternative pour ajouter l’écouteur d’événements au début du tableau d’écouteurs.

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)

Ajoute la fonction listener au début du tableau d’écouteurs pour l’événement nommé eventName. Aucune vérification n’est effectuée pour voir si le listener a déjà été ajouté. Plusieurs appels passant la même combinaison de eventName et de listener entraînent l’ajout de la listener et l’appel, plusieurs fois.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Ajoute une fonction listener unique pour l’événement nommé eventName au début du tableau d’écouteurs. La prochaine fois que eventName est déclenchée, cet écouteur est supprimé, puis appelé.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

rawListeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName, y compris les wrappers (tels que ceux créés par .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)

Supprime tous les écouteurs, ou ceux de la eventNamespécifiée.

Il est déconseillé de supprimer les écouteurs ajoutés ailleurs dans le code, en particulier lorsque l’instance de EventEmitter a été créée par un autre composant ou module (par exemple, des sockets ou des flux de fichiers).

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Supprime le listener spécifié du tableau d’écouteurs pour l’événement nommé eventName.

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

removeListener() supprimera, au plus, une instance d’un écouteur du tableau d’écouteurs. Si un écouteur unique a été ajouté plusieurs fois au tableau d’écouteurs pour le eventNamespécifié, removeListener() doit être appelé plusieurs fois pour supprimer chaque instance.

Une fois qu’un événement est émis, tous les écouteurs attachés à celui-ci au moment de l’émission sont appelés dans l’ordre. Cela implique que les appels removeListener() ou removeAllListeners()après émission et avant la dernière exécution de l’écouteur ne les supprime pas deemit() en cours. Les événements suivants se comportent comme prévu.

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

Étant donné que les écouteurs sont gérés à l’aide d’un tableau interne, l’appel change les index de position de n’importe quel écouteur inscrit après l’écouteur en cours de suppression. Cela n’aura pas d’impact sur l’ordre dans lequel les écouteurs sont appelés, mais cela signifie que toutes les copies du tableau d’écouteurs retournées par la méthode emitter.listeners() devront être recréées.

Lorsqu’une fonction unique a été ajoutée en tant que gestionnaire plusieurs fois pour un événement unique (comme dans l’exemple ci-dessous), removeListener() supprime l’instance la plus récemment ajoutée. Dans l’exemple, l’écouteur once('ping') est supprimé :

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

setMaxListeners(number)

Par défaut, EventEmitters affiche un avertissement si plus de 10 écouteurs sont ajoutés pour un événement particulier. Il s’agit d’une valeur par défaut utile qui permet de trouver des fuites de mémoire. La méthode emitter.setMaxListeners() permet de modifier la limite pour cette instance de EventEmitter spécifique. La valeur peut être définie sur Infinity (ou 0) pour indiquer un nombre illimité d’écouteurs.

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

Détails de la propriété héritée

captureRejections

Valeur : booléen

Changez l’option par défaut captureRejections sur tous les nouveaux EventEmitter objets.

static captureRejections: boolean

Valeur de propriété

boolean

Hérité de EventEmitter.captureRejections

captureRejectionSymbol

Valeur : Symbol.for('nodejs.rejection')

Voyez comment écrire un fichier personnalisé rejection handler.

static captureRejectionSymbol: typeof captureRejectionSymbol

Valeur de propriété

typeof captureRejectionSymbol

Hérité de EventEmitter.captureRejectionSymbol.

defaultMaxListeners

Par défaut, un maximum d’auditeurs 10 peut être inscrit à un seul événement. Cette limite peut être modifiée pour chaque EventEmitter instance en utilisant la emitter.setMaxListeners(n) méthode. Pour changer la valeur par défaut pour toutesEventEmitter les instances, la events.defaultMaxListeners propriété peut être utilisée. Si cette valeur n’est pas un nombre positif, a RangeError est lancé.

Soyez prudent lors de la mise en place car events.defaultMaxListeners le changement affecte toutesEventEmitter les instances, y compris celles créées avant la modification. Cependant, appeler emitter.setMaxListeners(n) a toujours une priorité sur events.defaultMaxListeners.

Ce n’est pas une limite stricte. L’instance EventEmitter permettra d’ajouter plus d’auditeurs mais enverra un avertissement de trace à stderr indiquant qu’une « fuite mémoire possible EventEmitter » a été détectée. Pour tout , EventEmitterles emitter.getMaxListeners() méthodes et emitter.setMaxListeners() peuvent être utilisées pour éviter temporairement cet avertissement :

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

Le --trace-warnings drapeau de ligne de commande peut être utilisé pour afficher la trace de pile pour de tels avertissements.

L’avertissement émis peut être inspecté avec process.on('warning') et aura les propriétés supplémentaires emitter, type, et count , faisant référence respectivement à l’instance de l’émetteur d’événement, au nom de l’événement et au nombre d’auditeurs attachés. Sa name propriété est fixée à 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

Valeur de propriété

number

héritée de EventEmitter.defaultMaxListeners

errorMonitor

Ce symbole doit être utilisé pour installer un écouteur uniquement pour surveiller 'error' les événements. Les auditeurs installés avec ce symbole sont appelés avant que les auditeurs réguliers 'error' ne soient appelés.

L’installation d’un écouteur utilisant ce symbole ne change pas le comportement une fois qu’un 'error' événement est émis. Par conséquent, le processus plante toujours si aucun auditeur régulier 'error' n’est installé.

static errorMonitor: typeof errorMonitor

Valeur de propriété

typeof errorMonitor

Hérité de EventEmitter.errorMonitor

Détails de la méthode

close()

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

Retours

Promise<ResultWithIncomingMessage<Disconnected>>

close(IncomingMessageCallback<Disconnected>)

Ferme la connexion à un hub IoT.

function close(done?: IncomingMessageCallback<Disconnected>)

Paramètres

done

IncomingMessageCallback<Disconnected>

Fonction facultative à appeler lorsque l’opération est terminée. done sera passé un argument d’objet Error, qui sera null si l’opération s’est terminée avec succès.

fromConnectionString(string, TransportCtor)

Crée un client de service IoT Hub à partir de la chaîne de connexion donnée à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

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

Paramètres

connStr

string

Chaîne de connexion qui encapsule les autorisations « device connect » sur un hub IoT.

transportCtor
TransportCtor

Retours

fromSharedAccessSignature(string, TransportCtor)

Crée un client de service IoT Hub à partir de la signature d’accès partagé donnée à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

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

Paramètres

sharedAccessSignature

string

Signature d’accès partagé qui encapsule les autorisations de « connexion de service » sur un hub IoT.

transportCtor
TransportCtor

Retours

fromTokenCredential(string, TokenCredential, TransportCtor)

Crée un client de service IoT Hub à partir du jeton AzureCredential donné à l’aide du transport par défaut (Amqp) ou de celui spécifié dans le deuxième argument.

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

Paramètres

hostName

string

Nom d’hôte du service Azure.

tokenCredential
TokenCredential

Azure TokenCredential utilisé pour s’authentifier auprès du service Azure

transportCtor
TransportCtor

Retours

getFeedbackReceiver()

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

Retours

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Retourne un objet AmqpReceiver qui émet des événements lorsque de nouveaux messages de commentaires sont reçus par le client.

function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Paramètres

done

IncomingMessageCallback<ServiceReceiver>

Fonction facultative à appeler lorsque l’opération est terminée. done sera appelée avec deux arguments : un objet Error (peut être null) et un objet AmqpReceiver.

getFileNotificationReceiver()

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

Retours

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Retourne un objet AmqpReceiver qui émet des événements lorsque de nouvelles notifications de chargement de fichier sont reçues par le client.

function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Paramètres

done

IncomingMessageCallback<ServiceReceiver>

Fonction facultative à appeler lorsque l’opération est terminée. done sera appelée avec deux arguments : un objet Error (peut être null) et un objet AmqpReceiver.

invokeDeviceMethod(string, DeviceMethodParams)

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

Paramètres

deviceId

string

methodParams
DeviceMethodParams

Retours

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Appelle une méthode sur un appareil ou un module particulier.

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

Paramètres

deviceId

string

Identificateur d’une identité d’appareil existante.

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

Rappel facultatif à appeler avec le résultat de l’exécution de la méthode.

invokeDeviceMethod(string, string, DeviceMethodParams)

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

Paramètres

deviceId

string

moduleId

string

methodParams
DeviceMethodParams

Retours

Promise<ResultWithIncomingMessage<any>>

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

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

Paramètres

deviceId

string

moduleId

string

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

open()

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

Retours

Promise<ResultWithIncomingMessage<Connected>>

open(IncomingMessageCallback<Connected>)

Ouvre la connexion à un hub IoT.

function open(done?: IncomingMessageCallback<Connected>)

Paramètres

done

IncomingMessageCallback<Connected>

Fonction facultative à appeler lorsque l’opération est terminée. done sera passé un argument d’objet Error, qui sera null si l’opération s’est terminée avec succès.

send(string, Message | BufferConvertible)

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

Paramètres

deviceId

string

message

Message | BufferConvertible

Retours

Promise<ResultWithIncomingMessage<MessageEnqueued>>

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

Envoie un message à un appareil.

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

Paramètres

deviceId

string

Identificateur d’une identité d’appareil existante.

message

Message | BufferConvertible

Corps du message à envoyer à l’appareil. Si message n’est pas de type Message, il est converti.

done

IncomingMessageCallback<MessageEnqueued>

Fonction facultative à appeler lorsque l’opération est terminée. done sera appelée avec deux arguments : un objet Error (peut être null) et un objet réponse spécifique au transport utile pour la journalisation ou le débogage.

setRetryPolicy(RetryPolicy)

Définissez la stratégie utilisée par le client pour réessayer les opérations réseau.

function setRetryPolicy(policy: RetryPolicy)

Paramètres

policy

RetryPolicy

stratégie utilisée pour réessayer les opérations (par exemple, ouvrir, envoyer, etc.). Le SDK est fourni avec 2 stratégies intégrées : ExponentialBackoffWithJitter (valeur par défaut) et NoRetry (pour annuler toute forme de nouvelle tentative). L’utilisateur peut également transmettre son propre objet tant qu’il implémente 2 méthodes : - shouldRetry(err : Error) : booléen : indique si une opération doit être retentée en fonction du type d’erreur - nextRetryTimeout(retryCount : number, throttled : boolean) : nombre : retourne le temps d’attente (en millisecondes) avant de réessayer en fonction du nombre de tentatives précédent (retryCount) et du fait que l’erreur est une erreur de limitation ou non.

Détails de la méthode héritée

addAbortListener(AbortSignal, (event: Event) => void)

Écoute une fois l’événement abort sur le point fourni signal.

Écouter l’événement abort sur les signaux d’interruption est dangereux et peut entraîner des fuites de ressources puisque un autre tiers possédant le signal peut appeler e.stopImmediatePropagation(). Malheureusement, Node.js ne peut pas changer cela car cela violerait la norme web. De plus, l’API originale permet d’oublier facilement de supprimer les auditeurs.

Cette API permet d’utiliser AbortSignalen toute sécurité s dans Node.js API en résolvant ces deux problèmes en écoutant l’événement de manière à stopImmediatePropagation ne pas empêcher l’écouteur de s’exécuter.

Retourne un jetable pour qu’il puisse être plus facilement désabonné.

import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}
static function addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable

Paramètres

signal

AbortSignal

resource

(event: Event) => void

Retours

Disposable

Jetable qui enlève l’auditeur abort .

Hérité de EventEmitter.addAbortListener

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

Alias pour emitter.on(eventName, listener).

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

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

héritée de EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Appelle de manière synchrone chacun des écouteurs inscrits pour l’événement nommé eventName, dans l’ordre dans lequel ils ont été inscrits, en passant les arguments fournis à chacun d’eux.

Retourne true si l’événement avait des écouteurs, false sinon.

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

Paramètres

eventName

string | symbol

args

AnyRest

Retours

boolean

héritée de EventEmitter.emit

eventNames()

Retourne un tableau répertoriant les événements pour lesquels l’émetteur a enregistré des écouteurs. Les valeurs du tableau sont des chaînes ou des 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)[]

Retours

(string | symbol)[]

héritée de EventEmitter.eventNames

getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName.

Pour EventEmitters, cela se comporte exactement de la même manière que d’appeler .listeners l’émetteur.

Pour EventTargets, c’est la seule façon d’obtenir les auditeurs de l’événement pour la cible de l’événement. Cela est utile pour le débogage et le diagnostic.

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

{
  const ee = new EventEmitter();
  const listener = () => console.log('Events are fun');
  ee.on('foo', listener);
  console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
  const et = new EventTarget();
  const listener = () => console.log('Events are fun');
  et.addEventListener('foo', listener);
  console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
static function getEventListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget, name: string | symbol): Function[]

Paramètres

emitter

EventEmitter<DefaultEventMap> | EventTarget

name

string | symbol

Retours

Function[]

Hérité de EventEmitter.getEventListeners

getMaxListeners()

Retourne la valeur maximale actuelle de l’écouteur pour l'EventEmitter qui est définie par emitter.setMaxListeners(n) ou par défaut sur <xref:EventEmitter.defaultMaxListeners>.

function getMaxListeners(): number

Retours

number

héritée de EventEmitter.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Rend le nombre maximal d’auditeurs actuellement fixé.

Pour EventEmitters, cela se comporte exactement de la même manière que d’appeler .getMaxListeners l’émetteur.

Pour EventTargets, c’est la seule façon d’obtenir le maximum d’auditeurs d’événements pour la cible d’événement. Si le nombre de gestionnaires d’événements sur un seul EventTarget dépasse le set maximal, l’EventTarget affichera un avertissement.

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
static function getMaxListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget): number

Paramètres

emitter

EventEmitter<DefaultEventMap> | EventTarget

Retours

number

héritée de EventEmitter.getMaxListeners

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Avertissement

Cette API est à présent déconseillée.

Since v3.2.0 - Use listenerCount instead.

Une méthode de classe qui retourne le nombre d’auditeurs pour le donné eventName enregistré sur le .emitter

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

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
static function listenerCount(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol): number

Paramètres

emitter

EventEmitter<DefaultEventMap>

L’émetteur à interroger

eventName

string | symbol

Nom de l’événement

Retours

number

héritée de EventEmitter.listenerCount

listenerCount<K>(string | symbol, Function)

Retourne le nombre d’écouteurs à l’écoute de l’événement nommé eventName. Si listener est fourni, il retourne le nombre de fois où l’écouteur est trouvé dans la liste des écouteurs de l’événement.

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

Paramètres

eventName

string | symbol

Nom de l’événement en cours d’écoute

listener

Function

Fonction du gestionnaire d’événements

Retours

number

héritée de EventEmitter.listenerCount

listeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé 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[]

Paramètres

eventName

string | symbol

Retours

Function[]

héritée de EventEmitter.listeners

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

Alias pour emitter.removeListener().

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

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

héritée de EventEmitter.off

on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

Des retours qui AsyncIterator itèrent eventName les événements. Il projette si l’émet EventEmitter'error'. Il supprime tous les auditeurs lors de la sortie de la boucle. Le value rendu par chaque itération est un tableau composé des arguments des événements émis.

An peut être utilisé pour annuler l’attente AbortSignal des événements :

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());

Utilisez l’option close pour spécifier un tableau de noms d’événements qui mettra fin à l’itération :

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
  ee.emit('close');
});

for await (const event of on(ee, 'foo', { close: ['close'] })) {
  console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>

Paramètres

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterIteratorOptions

Retours

AsyncIterator<any[], any, any>

Et AsyncIterator qui itère eventName les événements émis par le emitter

héritée de EventEmitter.on

on(EventTarget, string, StaticEventEmitterIteratorOptions)

static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>

Paramètres

emitter

EventTarget

eventName

string

options

StaticEventEmitterIteratorOptions

Retours

AsyncIterator<any[], any, any>

héritée de EventEmitter.on

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

Ajoute la fonction listener à la fin du tableau d’écouteurs pour l’événement nommé eventName. Aucune vérification n’est effectuée pour voir si le listener a déjà été ajouté. Plusieurs appels passant la même combinaison de eventName et de listener entraînent l’ajout de la listener et l’appel, plusieurs fois.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

Par défaut, les écouteurs d’événements sont appelés dans l’ordre dans lequel ils sont ajoutés. La méthode emitter.prependListener() peut être utilisée comme alternative pour ajouter l’écouteur d’événements au début du tableau d’écouteurs.

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

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

héritée de EventEmitter.on

once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Crée un Promise qui est rempli lorsque le EventEmitter émet l’événement donné ou qui est rejeté si le EventEmitter émet 'error' en attendant. Le Promise règlement se résoudra avec un tableau de tous les arguments émis à l’événement donné.

Cette méthode est volontairement générique et fonctionne avec l’interface EventTarget de la plateforme web, qui ne possède aucune sémantique d’événement spécial'error' et n’écoute pas l’événement 'error' .

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

La gestion spéciale de l’événement 'error' n’est utilisée que lorsqu’il events.once() est utilisé pour attendre un autre événement. Si events.once() est utilisé pour attendre l’événement 'error' lui-même, alors il est traité comme tout autre type d’événement sans traitement spécial :

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

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

An peut être utilisé pour annuler l’attente AbortSignal de l’événement :

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

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
static function once(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>

Paramètres

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

Retours

Promise<any[]>

héritée de EventEmitter.once

once(EventTarget, string, StaticEventEmitterOptions)

static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>

Paramètres

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

Retours

Promise<any[]>

héritée de EventEmitter.once

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

Ajoute une fonction listener unique pour l’événement nommé eventName. La prochaine fois que eventName est déclenchée, cet écouteur est supprimé, puis appelé.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

Par défaut, les écouteurs d’événements sont appelés dans l’ordre dans lequel ils sont ajoutés. La méthode emitter.prependOnceListener() peut être utilisée comme alternative pour ajouter l’écouteur d’événements au début du tableau d’écouteurs.

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): Client

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

héritée de EventEmitter.once

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

Ajoute la fonction listener au début du tableau d’écouteurs pour l’événement nommé eventName. Aucune vérification n’est effectuée pour voir si le listener a déjà été ajouté. Plusieurs appels passant la même combinaison de eventName et de listener entraînent l’ajout de la listener et l’appel, plusieurs fois.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

héritée de EventEmitter.prependListener

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

Ajoute une fonction listener unique pour l’événement nommé eventName au début du tableau d’écouteurs. La prochaine fois que eventName est déclenchée, cet écouteur est supprimé, puis appelé.

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

héritée de EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName, y compris les wrappers (tels que ceux créés par .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[]

Paramètres

eventName

string | symbol

Retours

Function[]

héritée de EventEmitter.rawListeners

removeAllListeners(string | symbol)

Supprime tous les écouteurs, ou ceux de la eventNamespécifiée.

Il est déconseillé de supprimer les écouteurs ajoutés ailleurs dans le code, en particulier lorsque l’instance de EventEmitter a été créée par un autre composant ou module (par exemple, des sockets ou des flux de fichiers).

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Retours

héritée de EventEmitter.removeAllListeners

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

Supprime le listener spécifié du tableau d’écouteurs pour l’événement nommé eventName.

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

removeListener() supprimera, au plus, une instance d’un écouteur du tableau d’écouteurs. Si un écouteur unique a été ajouté plusieurs fois au tableau d’écouteurs pour le eventNamespécifié, removeListener() doit être appelé plusieurs fois pour supprimer chaque instance.

Une fois qu’un événement est émis, tous les écouteurs attachés à celui-ci au moment de l’émission sont appelés dans l’ordre. Cela implique que les appels removeListener() ou removeAllListeners()après émission et avant la dernière exécution de l’écouteur ne les supprime pas deemit() en cours. Les événements suivants se comportent comme prévu.

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

Étant donné que les écouteurs sont gérés à l’aide d’un tableau interne, l’appel change les index de position de n’importe quel écouteur inscrit après l’écouteur en cours de suppression. Cela n’aura pas d’impact sur l’ordre dans lequel les écouteurs sont appelés, mais cela signifie que toutes les copies du tableau d’écouteurs retournées par la méthode emitter.listeners() devront être recréées.

Lorsqu’une fonction unique a été ajoutée en tant que gestionnaire plusieurs fois pour un événement unique (comme dans l’exemple ci-dessous), removeListener() supprime l’instance la plus récemment ajoutée. Dans l’exemple, l’écouteur once('ping') est supprimé :

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

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

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

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

héritée de EventEmitter.removeListener

setMaxListeners(number)

Par défaut, EventEmitters affiche un avertissement si plus de 10 écouteurs sont ajoutés pour un événement particulier. Il s’agit d’une valeur par défaut utile qui permet de trouver des fuites de mémoire. La méthode emitter.setMaxListeners() permet de modifier la limite pour cette instance de EventEmitter spécifique. La valeur peut être définie sur Infinity (ou 0) pour indiquer un nombre illimité d’écouteurs.

Retourne une référence au EventEmitter, afin que les appels puissent être chaînés.

function setMaxListeners(n: number): Client

Paramètres

n

number

Retours

héritée de EventEmitter.setMaxListeners

setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])

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

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
static function setMaxListeners(n?: number, eventTargets: (EventEmitter<DefaultEventMap> | EventTarget)[])

Paramètres

n

number

Un nombre non négatif. Le nombre maximal d’auditeurs par EventTarget événement.

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

Zéro ou plus d’instances {EventTarget} ou {EventEmitter}. Si aucun n’est spécifié, n est défini comme maximum par défaut pour tous les nouveaux objets {EventTarget} et {EventEmitter} nouvellement créés.

héritée de EventEmitter.setMaxListeners

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

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

Paramètres

error

Error

event

string | symbol

args

AnyRest

Hérité de EventEmitter.__@captureRejectionSymbol@118