Share via


SharedAccessSignatureAuthenticationProvider class

Fournit un AuthenticationProvider objet qui peut être créé simplement avec une signature d’accès partagé et qui est ensuite utilisé par le client de l’appareil et les transports pour s’authentifier auprès d’Azure IoT Hub instance.

L’objet SharedAccessSignatureAuthenticationProvider ne renouvelle pas automatiquement le jeton de signature d’accès partagé. L’utilisateur doit donc lui fournir des jetons de signature d’accès partagé non expirés à l’aide de la updateSharedAccessSignature méthode . Pour chaque appel à cette méthode, le émet un newTokenAvailable événement que les SharedAccessSignatureAuthenticationProvider transports utilisent pour s’authentifier auprès du instance Azure IoT Hub.

Extends

EventEmitter

Propriétés

type

Propriétés héritées

captureRejections

Valeur : booléen

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

captureRejectionSymbol

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

Découvrez comment écrire un personnalisé rejection handler.

defaultMaxListeners

Par défaut, un maximum d’écouteurs 10 peut être inscrit pour n’importe quel événement. Cette limite peut être modifiée pour des instances individuelles EventEmitter à l’aide de la emitter.setMaxListeners(n) méthode . Pour modifier la valeur par défaut pour toutes lesEventEmitter instances, vous pouvez utiliser la events.defaultMaxListeners propriété . Si cette valeur n’est pas un nombre positif, un RangeError est levée.

Soyez prudent lorsque vous définissez le events.defaultMaxListeners , car la modification affecte toutes lesEventEmitter instances, y compris celles créées avant la modification. Toutefois, l’appel emitter.setMaxListeners(n) a toujours la priorité sur events.defaultMaxListeners.

Il ne s’agit pas d’une limite stricte. La EventEmitter instance permet d’ajouter d’autres écouteurs, mais génère un avertissement de trace à stderr indiquant qu’une « fuite de mémoire EventEmitter possible » a été détectée. Pour n’importe quel , 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));
});

L’indicateur --trace-warnings de ligne de commande peut être utilisé pour afficher la trace de la pile pour ces avertissements.

L’avertissement émis peut être inspecté avec process.on('warning') et aura les propriétés , typeet count supplémentairesemitter, faisant référence à l’émetteur d’événements instance, au nom de l’événement et au nombre d’écouteurs attachés, respectivement. Sa name propriété est définie sur 'MaxListenersExceededWarning'.

errorMonitor

Ce symbole doit être utilisé pour installer un écouteur uniquement pour la surveillance des 'error' événements. Les écouteurs installés à l’aide de ce symbole sont appelés avant l’appel des écouteurs standard 'error' .

L’installation d’un écouteur à l’aide de ce symbole ne modifie pas le comportement une fois qu’un 'error' événement est émis. Par conséquent, le processus se bloque toujours si aucun écouteur standard 'error' n’est installé.

Méthodes

fromSharedAccessSignature(string)

Crée un nouveau SharedAccessSignatureAuthenticationProvider à partir d’un chaîne de connexion

getDeviceCredentials()
getDeviceCredentials(Callback<TransportConfig>)

Cette méthode est utilisée par les transports pour obtenir les informations d’identification d’appareil les plus actuelles sous la forme d’un TransportConfig objet .

stop()

ne fait rien et retourne : cela fait partie de l’API du fournisseur d’authentification basée sur des jetons, mais il n’y a aucune ressource à arrêter/libérer ici.

updateSharedAccessSignature(string)

Mises à jour le jeton de signature d’accès partagé que le transport doit utiliser pour l’authentification. Lorsqu’il est appelé, le SharedAccessSignatureAuthenticationProvider émet un newTokenAvailable événement que les transports peuvent ensuite utiliser pour s’authentifier auprès du instance Azure IoT Hub.

Méthodes héritées

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

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

L’écoute de l’événement sur les abort signaux d’abandon est dangereuse et peut entraîner des fuites de ressources, car un autre tiers avec le signal peut appeler e.stopImmediatePropagation(). Malheureusement, Node.js ne pouvez pas changer cela, car cela violerait la norme web. En outre, l’API d’origine permet d’oublier facilement de supprimer les écouteurs.

Cette API permet d’utiliser AbortSignaldes s en toute sécurité dans les API Node.js en résolvant ces deux problèmes en écoutant l’événement, ce qui stopImmediatePropagation n’empêche pas l’écouteur de s’exécuter.

Retourne un jetable afin qu’il puisse être désinscrit plus facilement.

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 inscrit des écouteurs. Les valeurs du tableau sont des chaînes ou Symboldes s.

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 comme appeler .listeners sur l’émetteur.

Pour EventTargets, il s’agit de la seule façon d’obtenir les écouteurs d’événements pour la cible d’événement. Cela est utile à des fins de débogage et de 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 d’écouteur maximale actuelle pour le EventEmitter qui est défini par emitter.setMaxListeners(n) ou par défaut sur defaultMaxListeners.

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Retourne la quantité maximale d’écouteurs actuellement définie.

Pour EventEmitters, cela se comporte exactement comme appeler .getMaxListeners sur l’émetteur.

Pour EventTargets, il s’agit de la seule façon d’obtenir le nombre maximal d’écouteurs d’événements pour la cible d’événement. Si le nombre de gestionnaires d’événements sur un seul EventTarget dépasse la valeur maximale définie, EventTarget affiche 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)

Méthode de classe qui retourne le nombre d’écouteurs pour le donné eventName inscrit sur le donné 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 qui écoutent l’événement nommé eventName. Si listener est fourni, il retourne le nombre de fois où l’écouteur se trouve 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, StaticEventEmitterOptions)
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

Retourne un AsyncIterator qui itère les eventName événements. Elle lève si émet EventEmitter'error'. Il supprime tous les écouteurs lors de la sortie de la boucle. Le value retourné par chaque itération est un tableau composé des arguments d’événement émis.

Un AbortSignal peut être utilisé pour annuler l’attente d’é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());
on<K>(string | symbol, (args: any[]) => void)

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

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

Retourne une référence à , afin que les EventEmitterappels 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 emitter.prependListener() méthode 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 émet l’événement EventEmitter donné ou qui est rejeté si émet EventEmitter'error' pendant l’attente. Le Promise se résout avec un tableau de tous les arguments émis pour l’événement donné.

Cette méthode est intentionnellement générique et fonctionne avec l’interface EventTarget de plateforme web, qui n’a pas de sémantique d’événement spéciale'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' est utilisée uniquement lorsque events.once() est utilisé pour attendre un autre événement. Si events.once() est utilisé pour attendre l’événement lui-mêmeerror' , il est traité comme tout autre type d’événement sans gestion spéciale :

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

Un AbortSignal peut être utilisé pour annuler l’attente 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 à usage uniquelistener pour l’événement nommé eventName. La prochaine fois eventName qu’il est déclenché, cet écouteur est supprimé, puis appelé.

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

Retourne une référence à , afin que les EventEmitterappels 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 emitter.prependOnceListener() méthode 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 listener fonction au début du tableau d’écouteurs pour l’événement nommé eventName. Aucune vérification n’est effectuée pour voir si a listener déjà été ajouté. Plusieurs appels passant la même combinaison de eventName et listener entraînent l’ajout et l’appel listener de plusieurs fois.

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

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

Ajoute une fonction à usage uniquelistener pour l’événement nommé eventName au début du tableau d’écouteurs. La prochaine fois eventName qu’est déclenché, cet écouteur est supprimé, puis appelé.

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

rawListeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName, y compris tous 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 du spécifié eventName.

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

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

Supprime le spécifié listener 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 maximum, une instance d’un écouteur du tableau d’écouteurs. Si un écouteur unique a été ajouté plusieurs fois au tableau d’écouteurs pour le spécifié eventName, removeListener() vous devez être appelé plusieurs fois pour supprimer chaque instance.

Une fois qu’un événement est émis, tous les écouteurs qui y sont attachés au moment de l’émission sont appelés dans l’ordre. Cela implique que les removeListener() appels ou removeAllListeners()après l’émission et avant la fin de l’exécution du dernier écouteur ne les suppriment 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 de cela modifie les index de position de tout écouteur inscrit après la suppression de l’écouteur. 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 emitter.listeners() méthode devront être recréées.

Lorsqu’une seule fonction a été ajoutée en tant que gestionnaire plusieurs fois pour un seul événement (comme dans l’exemple ci-dessous), removeListener() supprime la dernière instance 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 à , afin que les EventEmitterappels puissent être chaînés.

setMaxListeners(number)

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

Retourne une référence à , afin que les EventEmitterappels 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é

type

type: AuthenticationType

Valeur de propriété

AuthenticationType

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

captureRejections

Valeur : booléen

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

Découvrez comment écrire un 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’écouteurs 10 peut être inscrit pour n’importe quel événement. Cette limite peut être modifiée pour des instances individuelles EventEmitter à l’aide de la emitter.setMaxListeners(n) méthode . Pour modifier la valeur par défaut pour toutes lesEventEmitter instances, vous pouvez utiliser la events.defaultMaxListeners propriété . Si cette valeur n’est pas un nombre positif, un RangeError est levée.

Soyez prudent lorsque vous définissez le events.defaultMaxListeners , car la modification affecte toutes lesEventEmitter instances, y compris celles créées avant la modification. Toutefois, l’appel emitter.setMaxListeners(n) a toujours la priorité sur events.defaultMaxListeners.

Il ne s’agit pas d’une limite stricte. La EventEmitter instance permet d’ajouter d’autres écouteurs, mais génère un avertissement de trace à stderr indiquant qu’une « fuite de mémoire EventEmitter possible » a été détectée. Pour n’importe quel , 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));
});

L’indicateur --trace-warnings de ligne de commande peut être utilisé pour afficher la trace de la pile pour ces avertissements.

L’avertissement émis peut être inspecté avec process.on('warning') et aura les propriétés , typeet count supplémentairesemitter, faisant référence à l’émetteur d’événements instance, au nom de l’événement et au nombre d’écouteurs attachés, respectivement. Sa name propriété est définie sur 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

Valeur de propriété

number

Hérité de EventEmitter.defaultMaxListeners

errorMonitor

Ce symbole doit être utilisé pour installer un écouteur uniquement pour la surveillance des 'error' événements. Les écouteurs installés à l’aide de ce symbole sont appelés avant l’appel des écouteurs standard 'error' .

L’installation d’un écouteur à l’aide de ce symbole ne modifie pas le comportement une fois qu’un 'error' événement est émis. Par conséquent, le processus se bloque toujours si aucun écouteur standard '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

fromSharedAccessSignature(string)

Crée un nouveau SharedAccessSignatureAuthenticationProvider à partir d’un chaîne de connexion

static function fromSharedAccessSignature(sharedAccessSignature: string): SharedAccessSignatureAuthenticationProvider

Paramètres

sharedAccessSignature

string

Chaîne de signature d’accès partagé contenant les paramètres requis pour l’authentification auprès du hub IoT.

Retours

getDeviceCredentials()

function getDeviceCredentials(): Promise<TransportConfig>

Retours

Promise<TransportConfig>

getDeviceCredentials(Callback<TransportConfig>)

Cette méthode est utilisée par les transports pour obtenir les informations d’identification d’appareil les plus actuelles sous la forme d’un TransportConfig objet .

function getDeviceCredentials(callback?: Callback<TransportConfig>)

Paramètres

callback

Callback<TransportConfig>

fonction facultative qui sera appelée avec une erreur ou un ensemble d’informations d’identification d’appareil qui peuvent être utilisées pour s’authentifier auprès du hub IoT.

stop()

ne fait rien et retourne : cela fait partie de l’API du fournisseur d’authentification basée sur des jetons, mais il n’y a aucune ressource à arrêter/libérer ici.

function stop()

updateSharedAccessSignature(string)

Mises à jour le jeton de signature d’accès partagé que le transport doit utiliser pour l’authentification. Lorsqu’il est appelé, le SharedAccessSignatureAuthenticationProvider émet un newTokenAvailable événement que les transports peuvent ensuite utiliser pour s’authentifier auprès du instance Azure IoT Hub.

function updateSharedAccessSignature(sharedAccessSignature: string)

Paramètres

sharedAccessSignature

string

Chaîne de signature d’accès partagé contenant les paramètres requis pour l’authentification auprès du hub IoT.

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

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

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

L’écoute de l’événement sur les abort signaux d’abandon est dangereuse et peut entraîner des fuites de ressources, car un autre tiers avec le signal peut appeler e.stopImmediatePropagation(). Malheureusement, Node.js ne pouvez pas changer cela, car cela violerait la norme web. En outre, l’API d’origine permet d’oublier facilement de supprimer les écouteurs.

Cette API permet d’utiliser AbortSignaldes s en toute sécurité dans les API Node.js en résolvant ces deux problèmes en écoutant l’événement, ce qui stopImmediatePropagation n’empêche pas l’écouteur de s’exécuter.

Retourne un jetable afin qu’il puisse être désinscrit plus facilement.

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 supprime l’écouteur 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): SharedAccessSignatureAuthenticationProvider

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

Hérité 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é de EventEmitter.emit

eventNames()

Retourne un tableau répertoriant les événements pour lesquels l’émetteur a inscrit des écouteurs. Les valeurs du tableau sont des chaînes ou Symboldes s.

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é 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 comme appeler .listeners sur l’émetteur.

Pour EventTargets, il s’agit de la seule façon d’obtenir les écouteurs d’événements pour la cible d’événement. Cela est utile à des fins de débogage et de 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 d’écouteur maximale actuelle pour le EventEmitter qui est défini par emitter.setMaxListeners(n) ou par défaut sur defaultMaxListeners.

function getMaxListeners(): number

Retours

number

Hérité de EventEmitter.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Retourne la quantité maximale d’écouteurs actuellement définie.

Pour EventEmitters, cela se comporte exactement comme appeler .getMaxListeners sur l’émetteur.

Pour EventTargets, il s’agit de la seule façon d’obtenir le nombre maximal d’écouteurs d’événements pour la cible d’événement. Si le nombre de gestionnaires d’événements sur un seul EventTarget dépasse la valeur maximale définie, EventTarget affiche 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é de EventEmitter.getMaxListeners

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Avertissement

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

Since v3.2.0 - Use listenerCount instead.

Méthode de classe qui retourne le nombre d’écouteurs pour le donné eventName inscrit sur le donné 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>

Émetteur à interroger

eventName

string | symbol

Nom de l’événement

Retours

number

Hérité de EventEmitter.listenerCount

listenerCount<K>(string | symbol, Function)

Retourne le nombre d’écouteurs qui écoutent l’événement nommé eventName. Si listener est fourni, il retourne le nombre de fois où l’écouteur se trouve 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 écouté

listener

Function

Fonction de gestionnaire d’événements

Retours

number

Hérité 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é de EventEmitter.listeners

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

Alias pour emitter.removeListener().

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

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

Hérité de EventEmitter.off

on(EventEmitter<DefaultEventMap>, string, StaticEventEmitterOptions)

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

Retourne un AsyncIterator qui itère les eventName événements. Elle lève si émet EventEmitter'error'. Il supprime tous les écouteurs lors de la sortie de la boucle. Le value retourné par chaque itération est un tableau composé des arguments d’événement émis.

Un AbortSignal peut être utilisé pour annuler l’attente d’é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());
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>

Paramètres

emitter

EventEmitter<DefaultEventMap>

eventName

string

Nom de l’événement écouté

options

StaticEventEmitterOptions

Retours

AsyncIterableIterator<any>

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

Hérité de EventEmitter.on

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

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

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

Retourne une référence à , afin que les EventEmitterappels 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 emitter.prependListener() méthode 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): SharedAccessSignatureAuthenticationProvider

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

Hérité de EventEmitter.on

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

Crée un Promise qui est rempli lorsque émet l’événement EventEmitter donné ou qui est rejeté si émet EventEmitter'error' pendant l’attente. Le Promise se résout avec un tableau de tous les arguments émis pour l’événement donné.

Cette méthode est intentionnellement générique et fonctionne avec l’interface EventTarget de plateforme web, qui n’a pas de sémantique d’événement spéciale'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' est utilisée uniquement lorsque events.once() est utilisé pour attendre un autre événement. Si events.once() est utilisé pour attendre l’événement lui-mêmeerror' , il est traité comme tout autre type d’événement sans gestion spéciale :

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

Un AbortSignal peut être utilisé pour annuler l’attente 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é 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é de EventEmitter.once

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

Ajoute une fonction à usage uniquelistener pour l’événement nommé eventName. La prochaine fois eventName qu’il est déclenché, cet écouteur est supprimé, puis appelé.

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

Retourne une référence à , afin que les EventEmitterappels 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 emitter.prependOnceListener() méthode 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): SharedAccessSignatureAuthenticationProvider

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

Hérité de EventEmitter.once

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

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

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

Hérité de EventEmitter.prependListener

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

Ajoute une fonction à usage uniquelistener pour l’événement nommé eventName au début du tableau d’écouteurs. La prochaine fois eventName qu’est déclenché, cet écouteur est supprimé, puis appelé.

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Nom de l’événement.

listener

(args: any[]) => void

Fonction de rappel

Retours

Hérité de EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Retourne une copie du tableau d’écouteurs pour l’événement nommé eventName, y compris tous 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é de EventEmitter.rawListeners

removeAllListeners(string | symbol)

Supprime tous les écouteurs, ou ceux du spécifié eventName.

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

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

Paramètres

eventName

string | symbol

Retours

Hérité de EventEmitter.removeAllListeners

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

Supprime le spécifié listener 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 maximum, une instance d’un écouteur du tableau d’écouteurs. Si un écouteur unique a été ajouté plusieurs fois au tableau d’écouteurs pour le spécifié eventName, removeListener() vous devez être appelé plusieurs fois pour supprimer chaque instance.

Une fois qu’un événement est émis, tous les écouteurs qui y sont attachés au moment de l’émission sont appelés dans l’ordre. Cela implique que les removeListener() appels ou removeAllListeners()après l’émission et avant la fin de l’exécution du dernier écouteur ne les suppriment 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 de cela modifie les index de position de tout écouteur inscrit après la suppression de l’écouteur. 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 emitter.listeners() méthode devront être recréées.

Lorsqu’une seule fonction a été ajoutée en tant que gestionnaire plusieurs fois pour un seul événement (comme dans l’exemple ci-dessous), removeListener() supprime la dernière instance 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 à , afin que les EventEmitterappels puissent être chaînés.

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

Paramètres

eventName

string | symbol

listener

(args: any[]) => void

Retours

Hérité de EventEmitter.removeListener

setMaxListeners(number)

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

Retourne une référence à , afin que les EventEmitterappels puissent être chaînés.

function setMaxListeners(n: number): SharedAccessSignatureAuthenticationProvider

Paramètres

n

number

Retours

Hérité 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

Nombre non négatif. Nombre maximal d’écouteurs par EventTarget événement.

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

Hérité 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@138