Client class

Il client del servizio hub IoT viene usato per comunicare con i dispositivi tramite un hub IoT di Azure. Consente all'utente dell'SDK di:

  • inviare da cloud a dispositivo (noti anche come comandi) ai dispositivi: i comandi vengono accodati nell'hub IoT e recapitati in modo asincrono solo quando il dispositivo è connesso. È possibile accodare solo 50 comandi per dispositivo.
  • richiamare metodi diretti nei dispositivi (che funzioneranno solo se il dispositivo è attualmente connesso: è un modo sincrono di comunicare con il dispositivo)
  • ascoltare i messaggi di feedback inviati dai dispositivi per i comandi precedenti.
  • ascoltare le notifiche di caricamento dei file dai dispositivi.

Gli utenti devono creare nuove istanze di Client chiamando uno dei metodi factory, daConnectionString o daSharedAccessSignatureper creare un client del servizio hub IoT.

Extends

EventEmitter

Proprietà ereditate

captureRejections

Valore: booleano

Cambia l'opzione predefinita captureRejections su tutti i nuovi EventEmitter oggetti.

captureRejectionSymbol

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

Vedi come scrivere un file personalizzato rejection handler.

defaultMaxListeners

Per impostazione predefinita, un massimo di 10 ascoltatori può essere registrato per un singolo evento. Questo limite può essere modificato per singole EventEmitter istanze utilizzando il emitter.setMaxListeners(n) metodo. Per cambiare il valore predefinito per tutteEventEmitter le istanze, si può utilizzare la events.defaultMaxListeners proprietà. Se questo valore non è un numero positivo, si lancia a RangeError .

Fai attenzione quando imposti il events.defaultMaxListeners cambiamento perché la modifica riguarda tutteEventEmitter le istanze, comprese quelle create prima che la modifica venga effettuata. Tuttavia, chiamare emitter.setMaxListeners(n) ha ancora precedenza su events.defaultMaxListeners.

Non è un limite rigido. L'istanza EventEmitter permetterà di aggiungere più ascoltatori ma invierà un avviso di traccia a stderr che indica che è stata rilevata una "possibile perdita di memoria EventEmitter". Per ogni singolo EventEmitter, i emitter.getMaxListeners() metodi e emitter.setMaxListeners() possono essere usati per evitare temporaneamente questo avvertimento:

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

Il --trace-warnings flag della riga di comando può essere usato per visualizzare la traccia dello stack per tali avvisi.

L'avviso emesso può essere ispezionato con process.on('warning') e avrà le proprietà aggiuntive emitter, type, e count che si riferiscono rispettivamente all'istanza dell'emettitore dell'evento, al nome dell'evento e al numero di ascoltatori collegati. La sua proprietà è impostata name a 'MaxListenersExceededWarning'.

errorMonitor

Questo simbolo deve essere utilizzato per installare un ascoltatore solo per il monitoraggio 'error' degli eventi. Gli ascoltatori installati con questo simbolo vengono chiamati prima che vengano chiamati gli ascoltatori regolari 'error' .

L'installazione di un listener usando questo simbolo non cambia il comportamento una volta che un 'error' evento viene emesso. Pertanto, il processo continuerà a crashare se non viene installato un ascoltatore regolare 'error' .

Metodi

close()
close(IncomingMessageCallback<Disconnected>)

Chiude la connessione a un hub IoT.

fromConnectionString(string, TransportCtor)

Crea un client del servizio hub IoT dalla stringa di connessione specificata usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

fromSharedAccessSignature(string, TransportCtor)

Crea un client del servizio hub IoT dalla firma di accesso condiviso specificata usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

fromTokenCredential(string, TokenCredential, TransportCtor)

Crea un client del servizio hub IoT dal token di Azure specificatoCredential usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Restituisce un oggetto AmqpReceiver che genera eventi quando vengono ricevuti nuovi messaggi di feedback dal client.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Restituisce un oggetto AmqpReceiver che genera eventi quando vengono ricevute dal client nuove notifiche di caricamento di file.

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

Richiama un metodo in un determinato dispositivo o modulo.

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

Apre la connessione a un hub IoT.

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

Invia un messaggio a un dispositivo.

setRetryPolicy(RetryPolicy)

Impostare i criteri usati dal client per ripetere le operazioni di rete.

Metodi ereditati

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

Ascolta una volta l'evento abort sul sito fornito signal.

Ascoltare l'evento abort sui segnali di aborto è pericoloso e può portare a perdite di risorse poiché un'altra terza parte con il segnale può chiamare e.stopImmediatePropagation(). Purtroppo Node.js non posso cambiare questo perché violerebbe lo standard web. Inoltre, l'API originale rende facile dimenticare di rimuovere gli ascoltatori.

Questa API consente l'uso AbortSignalsicuro di s in Node.js API risolvendo questi due problemi ascoltando l'evento in modo da stopImmediatePropagation non impedire all'ascoltatore di eseguirlo.

Restituisce un usa e getta così da poter essere cancellato più facilmente.

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 per emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Chiama in modo sincrono ogni listener registrato per l'evento denominato eventName, nell'ordine in cui sono stati registrati, passando gli argomenti forniti a ognuno.

Restituisce true se l'evento include listener, false in caso contrario.

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

Restituisce una matrice che elenca gli eventi per i quali l'emettitore ha registrato listener. I valori nella matrice sono stringhe o 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)

Restituisce una copia della matrice di listener per l'evento denominato eventName.

Per EventEmitters questo si comporta esattamente come chiamare .listeners l'emettitore.

Per EventTargets questo è l'unico modo per ottenere gli ascoltatori dell'evento per il target dell'evento. Questo è utile per scopi di debug e diagnostica.

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

Restituisce il valore massimo del listener corrente per il EventEmitter impostato da emitter.setMaxListeners(n) o per impostazione predefinita su <xref:EventEmitter.defaultMaxListeners>.

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Restituisce il numero massimo di ascoltatori attualmente impostato.

Per EventEmitters questo si comporta esattamente come chiamare .getMaxListeners l'emettitore.

Per EventTargets questo è l'unico modo per ottenere il massimo ascolto di eventi per il target dell'evento. Se il numero di gestori di eventi su un singolo EventTarget supera il set massimo, l'EventTarget stamperà un avviso.

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)

Un metodo di classe che restituisce il numero di ascoltatori per il dato eventName registrato sul dato 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)

Restituisce il numero di listener in ascolto dell'evento denominato eventName. Se viene specificato listener, verrà restituito il numero di volte in cui il listener viene trovato nell'elenco dei listener dell'evento.

listeners<K>(string | symbol)

Restituisce una copia della matrice di listener per l'evento denominato 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 per 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

Ritorna e AsyncIterator che itera eventName gli eventi. Lancerà se emette EventEmitter'error'. Rimuove tutti gli ascoltatori quando esce dal loop. Il value ritorno di ogni iterazione è un array composto dagli argomenti dell'evento emesso.

An può essere usato per annullare l'attesa AbortSignal degli eventi:

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

Usa l'opzione close per specificare un array di nomi di eventi che concluderanno l'iterazione:

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)

Aggiunge la funzione listener alla fine della matrice listener per l'evento denominato eventName. Non vengono effettuati controlli per verificare se il listener è già stato aggiunto. Più chiamate che passano la stessa combinazione di eventName e listener comportano l'aggiunta del listener e la chiamata più volte.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

Per impostazione predefinita, i listener di eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il metodo emitter.prependListener() può essere usato come alternativa per aggiungere il listener di eventi all'inizio della matrice di listener.

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)

Crea un Promise che viene soddisfatto quando emette EventEmitter l'evento dato o che viene rifiutato se emette 'error'EventEmitter mentre è in attesa. Si Promise risolverà con una serie di tutti gli argomenti emessi all'evento dato.

Questo metodo è intenzionalmente generico e funziona con l'interfaccia della piattaforma web EventTarget , che non ha semantica degli eventi speciali'error' e non ascolta l'evento '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 gestione speciale dell'evento 'error' viene utilizzata solo quando events.once() viene usata per aspettare un altro evento. Se events.once() viene usato per attendere l'evento 'error' stesso, allora viene trattato come qualsiasi altro tipo di evento senza una gestione speciale:

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 può essere usato per annullare l'attesa AbortSignal dell'evento:

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)

Aggiunge un funzione dilistener una tantum per l'evento denominato eventName. La volta successiva che viene attivata eventName, questo listener viene rimosso e quindi richiamato.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

Per impostazione predefinita, i listener di eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il metodo emitter.prependOnceListener() può essere usato come alternativa per aggiungere il listener di eventi all'inizio della matrice di listener.

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)

Aggiunge la funzione listener all'iniziale della matrice listener per l'evento denominato eventName. Non vengono effettuati controlli per verificare se il listener è già stato aggiunto. Più chiamate che passano la stessa combinazione di eventName e listener comportano l'aggiunta del listener e la chiamata più volte.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Aggiunge una funzione di una tantum per l'evento denominato all'che inizia della matrice listener. Alla successiva attivazione di eventName, questo listener viene rimosso e quindi richiamato.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

rawListeners<K>(string | symbol)

Restituisce una copia della matrice di listener per l'evento denominato eventName, inclusi tutti i wrapper ( ad esempio quelli creati da .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)

Rimuove tutti i listener o quelli del eventNamespecificato.

È consigliabile rimuovere listener aggiunti altrove nel codice, in particolare quando l'istanza di EventEmitter è stata creata da un altro componente o modulo (ad esempio socket o flussi di file).

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Rimuove il listener specificato dalla matrice di listener per l'evento denominato eventName.

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

removeListener() rimuoverà al massimo un'istanza di un listener dalla matrice del listener. Se un listener singolo è stato aggiunto più volte alla matrice di listener per il eventNamespecificato, removeListener() deve essere chiamato più volte per rimuovere ogni istanza.

Una volta generato un evento, tutti i listener collegati al listener al momento dell'emissione vengono chiamati in ordine. Ciò implica che qualsiasi o chiamate dopo l'emissione e l' prima che l'ultima esecuzione del listener non li rimuoverà dal in corso. Gli eventi successivi si comportano come previsto.

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

Poiché i listener vengono gestiti usando una matrice interna, la chiamata di questo modificherà gli indici di posizione di qualsiasi listener registrato dopo la rimozione del listener. Ciò non influirà sull'ordine in cui vengono chiamati i listener, ma significa che tutte le copie della matrice del listener restituite dal metodo emitter.listeners() dovranno essere ricreate.

Quando una singola funzione è stata aggiunta più volte come gestore per un singolo evento (come nell'esempio seguente), removeListener() rimuoverà l'istanza aggiunta più di recente. Nell'esempio il listener once('ping') viene rimosso:

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

setMaxListeners(number)

Per impostazione predefinita, EventEmitters visualizzerà un avviso se vengono aggiunti più di 10 listener per un determinato evento. Si tratta di un valore predefinito utile che consente di trovare perdite di memoria. Il metodo emitter.setMaxListeners() consente di modificare il limite per questa specifica istanza di EventEmitter. Il valore può essere impostato su Infinity (o 0) per indicare un numero illimitato di listener.

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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)

Dettagli proprietà ereditate

captureRejections

Valore: booleano

Cambia l'opzione predefinita captureRejections su tutti i nuovi EventEmitter oggetti.

static captureRejections: boolean

Valore della proprietà

boolean

Ereditato da EventEmitter.catturaRejections

captureRejectionSymbol

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

Vedi come scrivere un file personalizzato rejection handler.

static captureRejectionSymbol: typeof captureRejectionSymbol

Valore della proprietà

typeof captureRejectionSymbol

Ereditato da EventEmitter.captureRejectionSymbol.

defaultMaxListeners

Per impostazione predefinita, un massimo di 10 ascoltatori può essere registrato per un singolo evento. Questo limite può essere modificato per singole EventEmitter istanze utilizzando il emitter.setMaxListeners(n) metodo. Per cambiare il valore predefinito per tutteEventEmitter le istanze, si può utilizzare la events.defaultMaxListeners proprietà. Se questo valore non è un numero positivo, si lancia a RangeError .

Fai attenzione quando imposti il events.defaultMaxListeners cambiamento perché la modifica riguarda tutteEventEmitter le istanze, comprese quelle create prima che la modifica venga effettuata. Tuttavia, chiamare emitter.setMaxListeners(n) ha ancora precedenza su events.defaultMaxListeners.

Non è un limite rigido. L'istanza EventEmitter permetterà di aggiungere più ascoltatori ma invierà un avviso di traccia a stderr che indica che è stata rilevata una "possibile perdita di memoria EventEmitter". Per ogni singolo EventEmitter, i emitter.getMaxListeners() metodi e emitter.setMaxListeners() possono essere usati per evitare temporaneamente questo avvertimento:

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

Il --trace-warnings flag della riga di comando può essere usato per visualizzare la traccia dello stack per tali avvisi.

L'avviso emesso può essere ispezionato con process.on('warning') e avrà le proprietà aggiuntive emitter, type, e count che si riferiscono rispettivamente all'istanza dell'emettitore dell'evento, al nome dell'evento e al numero di ascoltatori collegati. La sua proprietà è impostata name a 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

Valore della proprietà

number

Ereditato da EventEmitter.defaultMaxListeners

errorMonitor

Questo simbolo deve essere utilizzato per installare un ascoltatore solo per il monitoraggio 'error' degli eventi. Gli ascoltatori installati con questo simbolo vengono chiamati prima che vengano chiamati gli ascoltatori regolari 'error' .

L'installazione di un listener usando questo simbolo non cambia il comportamento una volta che un 'error' evento viene emesso. Pertanto, il processo continuerà a crashare se non viene installato un ascoltatore regolare 'error' .

static errorMonitor: typeof errorMonitor

Valore della proprietà

typeof errorMonitor

Ereditato da EventEmitter.errorMonitor

Dettagli metodo

close()

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

Valori restituiti

Promise<ResultWithIncomingMessage<Disconnected>>

close(IncomingMessageCallback<Disconnected>)

Chiude la connessione a un hub IoT.

function close(done?: IncomingMessageCallback<Disconnected>)

Parametri

done

IncomingMessageCallback<Disconnected>

Funzione facoltativa da chiamare al termine dell'operazione. done verrà passato un argomento dell'oggetto Error, che sarà Null se l'operazione è stata completata correttamente.

fromConnectionString(string, TransportCtor)

Crea un client del servizio hub IoT dalla stringa di connessione specificata usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

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

Parametri

connStr

string

Stringa di connessione che incapsula le autorizzazioni di "connessione del dispositivo" in un hub IoT.

transportCtor
TransportCtor

Valori restituiti

fromSharedAccessSignature(string, TransportCtor)

Crea un client del servizio hub IoT dalla firma di accesso condiviso specificata usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

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

Parametri

sharedAccessSignature

string

Firma di accesso condiviso che incapsula le autorizzazioni di "connessione al servizio" in un hub IoT.

transportCtor
TransportCtor

Valori restituiti

fromTokenCredential(string, TokenCredential, TransportCtor)

Crea un client del servizio hub IoT dal token di Azure specificatoCredential usando il trasporto predefinito (Amqp) o quello specificato nel secondo argomento.

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

Parametri

hostName

string

Nome host del servizio di Azure.

tokenCredential
TokenCredential

TokenCredential di Azure usato per l'autenticazione con il servizio di Azure

transportCtor
TransportCtor

Valori restituiti

getFeedbackReceiver()

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

Valori restituiti

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Restituisce un oggetto AmqpReceiver che genera eventi quando vengono ricevuti nuovi messaggi di feedback dal client.

function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parametri

done

IncomingMessageCallback<ServiceReceiver>

Funzione facoltativa da chiamare al termine dell'operazione. done verrà chiamato con due argomenti: un oggetto Error (può essere null) e un oggetto AmqpReceiver.

getFileNotificationReceiver()

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

Valori restituiti

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Restituisce un oggetto AmqpReceiver che genera eventi quando vengono ricevute dal client nuove notifiche di caricamento di file.

function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parametri

done

IncomingMessageCallback<ServiceReceiver>

Funzione facoltativa da chiamare al termine dell'operazione. done verrà chiamato con due argomenti: un oggetto Error (può essere null) e un oggetto AmqpReceiver.

invokeDeviceMethod(string, DeviceMethodParams)

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

Parametri

deviceId

string

methodParams
DeviceMethodParams

Valori restituiti

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Richiama un metodo in un determinato dispositivo o modulo.

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

Parametri

deviceId

string

Identificatore di un'identità del dispositivo esistente.

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

Callback facoltativo da chiamare con il risultato dell'esecuzione del metodo.

invokeDeviceMethod(string, string, DeviceMethodParams)

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

Parametri

deviceId

string

moduleId

string

methodParams
DeviceMethodParams

Valori restituiti

Promise<ResultWithIncomingMessage<any>>

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

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

Parametri

deviceId

string

moduleId

string

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

open()

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

Valori restituiti

Promise<ResultWithIncomingMessage<Connected>>

open(IncomingMessageCallback<Connected>)

Apre la connessione a un hub IoT.

function open(done?: IncomingMessageCallback<Connected>)

Parametri

done

IncomingMessageCallback<Connected>

Funzione facoltativa da chiamare al termine dell'operazione. done verrà passato un argomento dell'oggetto Error, che sarà Null se l'operazione è stata completata correttamente.

send(string, Message | BufferConvertible)

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

Parametri

deviceId

string

message

Message | BufferConvertible

Valori restituiti

Promise<ResultWithIncomingMessage<MessageEnqueued>>

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

Invia un messaggio a un dispositivo.

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

Parametri

deviceId

string

Identificatore di un'identità del dispositivo esistente.

message

Message | BufferConvertible

Corpo del messaggio da inviare al dispositivo. Se message non è di tipo Message, verrà convertito.

done

IncomingMessageCallback<MessageEnqueued>

Funzione facoltativa da chiamare al termine dell'operazione. done verrà chiamato con due argomenti: un oggetto Error (può essere Null) e un oggetto risposta specifico del trasporto utile per la registrazione o il debug.

setRetryPolicy(RetryPolicy)

Impostare i criteri usati dal client per ripetere le operazioni di rete.

function setRetryPolicy(policy: RetryPolicy)

Parametri

policy

RetryPolicy

criteri usati per ripetere le operazioni (ad esempio, aprire, inviare e così via). L'SDK include 2 criteri predefiniti: ExponentialBackoffWithJitter (impostazione predefinita) e NoRetry (per annullare qualsiasi forma di ripetizione). L'utente può anche passare il proprio oggetto purché implementi 2 metodi: - shouldRetry(err: Error): boolean : indica se un'operazione deve essere ritentata in base al tipo di errore - nextRetryTimeout(retryCount: number, throttled: boolean): number : restituisce il tempo di attesa (in millisecondi) prima di riprovare in base al numero precedente di tentativi (retryCount) e al fatto che l'errore è un errore di limitazione o meno.

Dettagli dei metodi ereditati

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

Ascolta una volta l'evento abort sul sito fornito signal.

Ascoltare l'evento abort sui segnali di aborto è pericoloso e può portare a perdite di risorse poiché un'altra terza parte con il segnale può chiamare e.stopImmediatePropagation(). Purtroppo Node.js non posso cambiare questo perché violerebbe lo standard web. Inoltre, l'API originale rende facile dimenticare di rimuovere gli ascoltatori.

Questa API consente l'uso AbortSignalsicuro di s in Node.js API risolvendo questi due problemi ascoltando l'evento in modo da stopImmediatePropagation non impedire all'ascoltatore di eseguirlo.

Restituisce un usa e getta così da poter essere cancellato più facilmente.

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

Parametri

signal

AbortSignal

resource

(event: Event) => void

Valori restituiti

Disposable

Usa e getta che toglie l'ascoltatore abort .

Ereditato da EventEmitter.addAbortListener

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

Alias per emitter.on(eventName, listener).

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

Parametri

eventName

string | symbol

listener

(args: any[]) => void

Valori restituiti

Ereditato da EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Chiama in modo sincrono ogni listener registrato per l'evento denominato eventName, nell'ordine in cui sono stati registrati, passando gli argomenti forniti a ognuno.

Restituisce true se l'evento include listener, false in caso contrario.

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

Parametri

eventName

string | symbol

args

AnyRest

Valori restituiti

boolean

Ereditato da EventEmitter.emit

eventNames()

Restituisce una matrice che elenca gli eventi per i quali l'emettitore ha registrato listener. I valori nella matrice sono stringhe o 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)[]

Valori restituiti

(string | symbol)[]

Ereditato da EventEmitter.eventNames

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

Restituisce una copia della matrice di listener per l'evento denominato eventName.

Per EventEmitters questo si comporta esattamente come chiamare .listeners l'emettitore.

Per EventTargets questo è l'unico modo per ottenere gli ascoltatori dell'evento per il target dell'evento. Questo è utile per scopi di debug e diagnostica.

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

Parametri

emitter

EventEmitter<DefaultEventMap> | EventTarget

name

string | symbol

Valori restituiti

Function[]

Ereditato da EventEmitter.getEventListeners

getMaxListeners()

Restituisce il valore massimo del listener corrente per il EventEmitter impostato da emitter.setMaxListeners(n) o per impostazione predefinita su <xref:EventEmitter.defaultMaxListeners>.

function getMaxListeners(): number

Valori restituiti

number

ereditato da EventEmitter.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Restituisce il numero massimo di ascoltatori attualmente impostato.

Per EventEmitters questo si comporta esattamente come chiamare .getMaxListeners l'emettitore.

Per EventTargets questo è l'unico modo per ottenere il massimo ascolto di eventi per il target dell'evento. Se il numero di gestori di eventi su un singolo EventTarget supera il set massimo, l'EventTarget stamperà un avviso.

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

Parametri

emitter

EventEmitter<DefaultEventMap> | EventTarget

Valori restituiti

number

ereditato da EventEmitter.getMaxListeners

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Avviso

Questa API è ora deprecata.

Since v3.2.0 - Use listenerCount instead.

Un metodo di classe che restituisce il numero di ascoltatori per il dato eventName registrato sul dato 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

Parametri

emitter

EventEmitter<DefaultEventMap>

L'emettitore da interrogare

eventName

string | symbol

Nome dell'evento

Valori restituiti

number

Ereditato da EventEmitter.listenerCount

listenerCount<K>(string | symbol, Function)

Restituisce il numero di listener in ascolto dell'evento denominato eventName. Se viene specificato listener, verrà restituito il numero di volte in cui il listener viene trovato nell'elenco dei listener dell'evento.

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

Parametri

eventName

string | symbol

Nome dell'evento in ascolto

listener

Function

Funzione del gestore eventi

Valori restituiti

number

Ereditato da EventEmitter.listenerCount

listeners<K>(string | symbol)

Restituisce una copia della matrice di listener per l'evento denominato 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[]

Parametri

eventName

string | symbol

Valori restituiti

Function[]

Ereditato da EventEmitter.listener

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

Alias per emitter.removeListener().

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

Parametri

eventName

string | symbol

listener

(args: any[]) => void

Valori restituiti

Ereditato da 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

Ritorna e AsyncIterator che itera eventName gli eventi. Lancerà se emette EventEmitter'error'. Rimuove tutti gli ascoltatori quando esce dal loop. Il value ritorno di ogni iterazione è un array composto dagli argomenti dell'evento emesso.

An può essere usato per annullare l'attesa AbortSignal degli eventi:

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

Usa l'opzione close per specificare un array di nomi di eventi che concluderanno l'iterazione:

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>

Parametri

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterIteratorOptions

Valori restituiti

AsyncIterator<any[], any, any>

E AsyncIterator che itera eventName gli eventi emessi dal emitter

Ereditato da EventEmitter.on

on(EventTarget, string, StaticEventEmitterIteratorOptions)

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

Parametri

emitter

EventTarget

eventName

string

options

StaticEventEmitterIteratorOptions

Valori restituiti

AsyncIterator<any[], any, any>

Ereditato da EventEmitter.on

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

Aggiunge la funzione listener alla fine della matrice listener per l'evento denominato eventName. Non vengono effettuati controlli per verificare se il listener è già stato aggiunto. Più chiamate che passano la stessa combinazione di eventName e listener comportano l'aggiunta del listener e la chiamata più volte.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

Per impostazione predefinita, i listener di eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il metodo emitter.prependListener() può essere usato come alternativa per aggiungere il listener di eventi all'inizio della matrice di listener.

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

Parametri

eventName

string | symbol

Nome dell'evento.

listener

(args: any[]) => void

Funzione di callback

Valori restituiti

Ereditato da EventEmitter.on

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

Crea un Promise che viene soddisfatto quando emette EventEmitter l'evento dato o che viene rifiutato se emette 'error'EventEmitter mentre è in attesa. Si Promise risolverà con una serie di tutti gli argomenti emessi all'evento dato.

Questo metodo è intenzionalmente generico e funziona con l'interfaccia della piattaforma web EventTarget , che non ha semantica degli eventi speciali'error' e non ascolta l'evento '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 gestione speciale dell'evento 'error' viene utilizzata solo quando events.once() viene usata per aspettare un altro evento. Se events.once() viene usato per attendere l'evento 'error' stesso, allora viene trattato come qualsiasi altro tipo di evento senza una gestione speciale:

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 può essere usato per annullare l'attesa AbortSignal dell'evento:

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

Parametri

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

Valori restituiti

Promise<any[]>

ereditato da EventEmitter.once

once(EventTarget, string, StaticEventEmitterOptions)

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

Parametri

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

Valori restituiti

Promise<any[]>

ereditato da EventEmitter.once

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

Aggiunge un funzione dilistener una tantum per l'evento denominato eventName. La volta successiva che viene attivata eventName, questo listener viene rimosso e quindi richiamato.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

Per impostazione predefinita, i listener di eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il metodo emitter.prependOnceListener() può essere usato come alternativa per aggiungere il listener di eventi all'inizio della matrice di listener.

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

Parametri

eventName

string | symbol

Nome dell'evento.

listener

(args: any[]) => void

Funzione di callback

Valori restituiti

ereditato da EventEmitter.once

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

Aggiunge la funzione listener all'iniziale della matrice listener per l'evento denominato eventName. Non vengono effettuati controlli per verificare se il listener è già stato aggiunto. Più chiamate che passano la stessa combinazione di eventName e listener comportano l'aggiunta del listener e la chiamata più volte.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Parametri

eventName

string | symbol

Nome dell'evento.

listener

(args: any[]) => void

Funzione di callback

Valori restituiti

Ereditato da EventEmitter.prependListener

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

Aggiunge una funzione di una tantum per l'evento denominato all'che inizia della matrice listener. Alla successiva attivazione di eventName, questo listener viene rimosso e quindi richiamato.

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Parametri

eventName

string | symbol

Nome dell'evento.

listener

(args: any[]) => void

Funzione di callback

Valori restituiti

Ereditato da EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Restituisce una copia della matrice di listener per l'evento denominato eventName, inclusi tutti i wrapper ( ad esempio quelli creati da .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[]

Parametri

eventName

string | symbol

Valori restituiti

Function[]

ereditato da EventEmitter.rawListeners

removeAllListeners(string | symbol)

Rimuove tutti i listener o quelli del eventNamespecificato.

È consigliabile rimuovere listener aggiunti altrove nel codice, in particolare quando l'istanza di EventEmitter è stata creata da un altro componente o modulo (ad esempio socket o flussi di file).

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Parametri

eventName

string | symbol

Valori restituiti

Ereditato da EventEmitter.removeAllListeners

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

Rimuove il listener specificato dalla matrice di listener per l'evento denominato eventName.

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

removeListener() rimuoverà al massimo un'istanza di un listener dalla matrice del listener. Se un listener singolo è stato aggiunto più volte alla matrice di listener per il eventNamespecificato, removeListener() deve essere chiamato più volte per rimuovere ogni istanza.

Una volta generato un evento, tutti i listener collegati al listener al momento dell'emissione vengono chiamati in ordine. Ciò implica che qualsiasi o chiamate dopo l'emissione e l' prima che l'ultima esecuzione del listener non li rimuoverà dal in corso. Gli eventi successivi si comportano come previsto.

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

Poiché i listener vengono gestiti usando una matrice interna, la chiamata di questo modificherà gli indici di posizione di qualsiasi listener registrato dopo la rimozione del listener. Ciò non influirà sull'ordine in cui vengono chiamati i listener, ma significa che tutte le copie della matrice del listener restituite dal metodo emitter.listeners() dovranno essere ricreate.

Quando una singola funzione è stata aggiunta più volte come gestore per un singolo evento (come nell'esempio seguente), removeListener() rimuoverà l'istanza aggiunta più di recente. Nell'esempio il listener once('ping') viene rimosso:

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

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

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

Parametri

eventName

string | symbol

listener

(args: any[]) => void

Valori restituiti

Ereditato da EventEmitter.removeListener

setMaxListeners(number)

Per impostazione predefinita, EventEmitters visualizzerà un avviso se vengono aggiunti più di 10 listener per un determinato evento. Si tratta di un valore predefinito utile che consente di trovare perdite di memoria. Il metodo emitter.setMaxListeners() consente di modificare il limite per questa specifica istanza di EventEmitter. Il valore può essere impostato su Infinity (o 0) per indicare un numero illimitato di listener.

Restituisce un riferimento alla EventEmitter, in modo che le chiamate possano essere concatenati.

function setMaxListeners(n: number): Client

Parametri

n

number

Valori restituiti

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

Parametri

n

number

Un numero non negativo. Il numero massimo di ascoltatori per EventTarget evento.

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

Zero o più istanze {EventTarget} o {EventEmitter}. Se non ne sono specificati, n viene impostato come massimo predefinito per tutti i nuovi oggetti {EventTarget} e {EventEmitter} creati.

Ereditato da EventEmitter.setMaxListeners

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

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

Parametri

error

Error

event

string | symbol

args

AnyRest

Ereditato da EventEmitter.__@captureRejectionSymbol@118