SharedAccessKeyAuthenticationProvider class
Fornisce un AuthenticationProvider
oggetto che può essere creato semplicemente con un stringa di connessione e viene quindi usato dal client del dispositivo e dai trasporti per l'autenticazione con l'istanza dell'hub IoT di Azure.
L'oggetto SharedAccessKeyAuthenticationProvider
si occupa della creazione di token di firma di accesso condiviso a cadenza regolare e genera l'evento newTokenAvailable
per i trasporti per rinnovare le proprie credenziali con l'istanza dell'hub IoT di Azure e rimanere connesso.
- Extends
-
EventEmitter
Proprietà
type |
Proprietà ereditate
capture |
Valore: booleano Modificare l'opzione predefinita |
capture |
Valore: Vedere come scrivere un oggetto personalizzato |
default |
Per impostazione predefinita, è possibile registrare un massimo di Prestare attenzione quando si imposta l'oggetto Questo non è un limite rigido. L'istanza
Il L'avviso generato può essere controllato con |
error |
Questo simbolo deve essere utilizzato per installare un listener solo per gli eventi di monitoraggio L'installazione di un listener con questo simbolo non modifica il comportamento dopo l'emissione di un |
Metodi
from |
Crea un nuovo |
get |
|
get |
Questo metodo viene usato dai trasporti per ottenere le credenziali del dispositivo più correnti sotto forma di |
set |
Questo metodo consente al chiamante di impostare nuovi valori per il rinnovo dell'autenticazione. Questa funzione viene completata in modo sincrono, MA, causerà l'esecuzione asincrona delle azioni. Se il provider sta già eseguendo i rinnovi dei token, ad esempio se è stata stabilita una connessione di rete, la chiamata di questa funzione causerà un nuovo rinnovo quasi immediatamente. A seconda del protocollo, potrebbe verificarsi una disconnessione e una riconnessione. Tuttavia, se i rinnovi non si verificano attualmente, è sufficiente salvare i nuovi valori per usarli in un secondo momento. |
stop() | Arresta il timer usato per rinnovare il token di firma di accesso condiviso. |
Metodi ereditati
add |
Ascolta una sola volta l'evento nell'oggetto L'ascolto dell'evento Questa API consente l'uso Restituisce un oggetto monouso in modo che possa essere annullata più facilmente.
|
add |
Alias per |
emit<K>(string | symbol, Any |
Chiama in modo sincrono ognuno dei listener registrati per l'evento denominato Restituisce
|
event |
Restituisce una matrice che elenca gli eventi per i quali l'emittente ha registrato listener. I valori della matrice sono stringhe o
|
get |
Restituisce una copia della matrice di listener per l'evento denominato Per Per
|
get |
Restituisce il valore del listener massimo corrente per il |
get |
Restituisce la quantità massima attualmente impostata di listener. Per Per
|
listener |
Metodo di classe che restituisce il numero di listener per il dato registrato nell'oggetto
|
listener |
Restituisce il numero di listener in ascolto dell'evento denominato |
listeners<K>(string | symbol) | Restituisce una copia della matrice di listener per l'evento denominato
|
off<K>(string | symbol, (args: any[]) => void) | Alias per |
on(Event |
Restituisce un oggetto Può
|
on<K>(string | symbol, (args: any[]) => void) | Aggiunge la
Restituisce un riferimento a Per impostazione predefinita, i listener eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il
|
once(Event |
Crea un Questo metodo è intenzionalmente generico e funziona con l'interfaccia EventTarget della piattaforma Web, che non ha semantica di eventi speciali
La gestione speciale dell'evento
Un
|
once(Event |
|
once<K>(string | symbol, (args: any[]) => void) | Aggiunge una funzione una sola volta
Restituisce un riferimento a Per impostazione predefinita, i listener eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il
|
prepend |
Aggiunge la
Restituisce un riferimento a |
prepend |
Aggiunge una funzione una sola volta
Restituisce un riferimento a |
raw |
Restituisce una copia della matrice di listener per l'evento denominato
|
remove |
Rimuove tutti i listener o quelli dell'oggetto specificato È consigliabile rimuovere listener aggiunti altrove nel codice, in particolare quando l'istanza Restituisce un riferimento a |
remove |
Rimuove l'oggetto specificato
Una volta generato un evento, tutti i listener collegati a esso al momento dell'emissione vengono chiamati in ordine. Ciò implica che qualsiasi
Poiché i listener vengono gestiti usando una matrice interna, la chiamata cambierà gli indici di posizione di qualsiasi listener registrato dopo la rimozione del listener. Ciò non influisce sull'ordine in cui vengono chiamati i listener, ma significa che tutte le copie della matrice del listener restituito dal Quando una singola funzione è stata aggiunta come gestore più volte per un singolo evento (come nell'esempio seguente),
Restituisce un riferimento a |
set |
Per impostazione predefinita Restituisce un riferimento a |
set |
|
[capture |
Dettagli proprietà
type
type: AuthenticationType
Valore della proprietà
AuthenticationType
Dettagli proprietà ereditate
captureRejections
Valore: booleano
Modificare l'opzione predefinita captureRejections
per tutti i nuovi EventEmitter
oggetti.
static captureRejections: boolean
Valore della proprietà
boolean
Ereditato da EventEmitter.captureRejections
captureRejectionSymbol
Valore: Symbol.for('nodejs.rejection')
Vedere come scrivere un oggetto personalizzato rejection handler
.
static captureRejectionSymbol: typeof captureRejectionSymbol
Valore della proprietà
typeof captureRejectionSymbol
Ereditato da EventEmitter.captureRejectionSymbol
defaultMaxListeners
Per impostazione predefinita, è possibile registrare un massimo di 10
listener per qualsiasi singolo evento. Questo limite può essere modificato per le singole EventEmitter
istanze usando il emitter.setMaxListeners(n)
metodo . Per modificare l'impostazione predefinita per tutte leEventEmitter
istanze, è possibile usare la events.defaultMaxListeners
proprietà . Se questo valore non è un numero positivo, viene generata un'eccezione RangeError
.
Prestare attenzione quando si imposta l'oggetto events.defaultMaxListeners
perché la modifica influisce su tutte leEventEmitter
istanze, incluse quelle create prima che venga apportata la modifica. Tuttavia, la chiamata emitter.setMaxListeners(n)
ha ancora la precedenza su events.defaultMaxListeners
.
Questo non è un limite rigido. L'istanza EventEmitter
consentirà di aggiungere più listener, ma restituirà un avviso di traccia a stderr che indica che è stata rilevata una possibile perdita di memoria EventEmitter. Per qualsiasi singolo EventEmitter
, è possibile usare i emitter.getMaxListeners()
metodi e emitter.setMaxListeners()
per evitare temporaneamente questo avviso:
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 l'analisi dello stack per tali avvisi.
L'avviso generato può essere controllato con process.on('warning')
e avrà le proprietà aggiuntive emitter
, type
e count
, facendo riferimento all'istanza dell'emettitore dell'evento, al nome dell'evento e al numero di listener collegati, rispettivamente.
La proprietà name
è impostata su 'MaxListenersExceededWarning'
.
static defaultMaxListeners: number
Valore della proprietà
number
Ereditato da EventEmitter.defaultMaxListeners
errorMonitor
Questo simbolo deve essere utilizzato per installare un listener solo per gli eventi di monitoraggio 'error'
. I listener installati usando questo simbolo vengono chiamati prima che vengano chiamati i listener normali 'error'
.
L'installazione di un listener con questo simbolo non modifica il comportamento dopo l'emissione di un 'error'
evento. Pertanto, il processo continuerà ad arrestarsi in modo anomalo se non è installato alcun listener normale 'error'
.
static errorMonitor: typeof errorMonitor
Valore della proprietà
typeof errorMonitor
Ereditato da EventEmitter.errorMonitor
Dettagli metodo
fromConnectionString(string, number, number)
Crea un nuovo SharedAccessKeyAuthenticationProvider
oggetto da un stringa di connessione
static function fromConnectionString(connectionString: string, tokenValidTimeInSeconds?: number, tokenRenewalMarginInSeconds?: number): SharedAccessKeyAuthenticationProvider
Parametri
- connectionString
-
string
Un dispositivo stringa di connessione contenente i parametri necessari per l'autenticazione con l'hub IoT.
- tokenValidTimeInSeconds
-
number
[facoltativo] Numero di secondi per i quali un token deve essere valido.
- tokenRenewalMarginInSeconds
-
number
[facoltativo] Numero di secondi prima della fine del periodo di validità durante il quale deve SharedAccessKeyAuthenticationProvider
rinnovare il token.
Restituisce
getDeviceCredentials()
function getDeviceCredentials(): Promise<TransportConfig>
Restituisce
Promise<TransportConfig>
getDeviceCredentials(Callback<TransportConfig>)
Questo metodo viene usato dai trasporti per ottenere le credenziali del dispositivo più correnti sotto forma di TransportConfig
oggetto .
function getDeviceCredentials(callback?: Callback<TransportConfig>)
Parametri
- callback
-
Callback<TransportConfig>
funzione facoltativa che verrà chiamata con un errore o un set di credenziali del dispositivo che possono essere usate per l'autenticazione con l'hub IoT.
setTokenRenewalValues(number, number)
Questo metodo consente al chiamante di impostare nuovi valori per il rinnovo dell'autenticazione.
Questa funzione viene completata in modo sincrono, MA, causerà l'esecuzione asincrona delle azioni. Se il provider sta già eseguendo i rinnovi dei token, ad esempio se è stata stabilita una connessione di rete, la chiamata di questa funzione causerà un nuovo rinnovo quasi immediatamente. A seconda del protocollo, potrebbe verificarsi una disconnessione e una riconnessione. Tuttavia, se i rinnovi non si verificano attualmente, è sufficiente salvare i nuovi valori per usarli in un secondo momento.
function setTokenRenewalValues(tokenValidTimeInSeconds: number, tokenRenewalMarginInSeconds: number)
Parametri
- tokenValidTimeInSeconds
-
number
Numero di secondi per i quali un token deve essere valido.
- tokenRenewalMarginInSeconds
-
number
Numero di secondi prima della fine del periodo di validità durante il quale deve SharedAccessKeyAuthenticationProvider
rinnovare il token.
stop()
Arresta il timer usato per rinnovare il token di firma di accesso condiviso.
function stop()
Dettagli dei metodi ereditati
addAbortListener(AbortSignal, (event: Event) => void)
Ascolta una sola volta l'evento nell'oggetto abort
specificato signal
.
L'ascolto dell'evento abort
sui segnali di interruzione non è sicuro e può causare perdite di risorse poiché un'altra terza parte con il segnale può chiamare e.stopImmediatePropagation()
. Purtroppo Node.js non può modificare questo perché viola lo standard Web. Inoltre, l'API originale semplifica la rimozione dei listener.
Questa API consente l'uso AbortSignal
sicuro di s nelle API Node.js risolvendo questi due problemi ascoltando l'evento in modo che stopImmediatePropagation
non impedisca l'esecuzione del listener.
Restituisce un oggetto monouso in modo che possa essere annullata 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
Restituisce
Disposable
Monouso che rimuove il abort
listener.
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): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Restituisce
Ereditato da EventEmitter.addListener
emit<K>(string | symbol, AnyRest)
Chiama in modo sincrono ognuno dei listener registrati per l'evento denominato eventName
, nell'ordine in cui sono stati registrati, passando gli argomenti forniti a ognuno.
Restituisce true
se l'evento aveva 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
Restituisce
boolean
Ereditato da EventEmitter.emit
eventNames()
Restituisce una matrice che elenca gli eventi per i quali l'emittente ha registrato listener. I valori della matrice sono stringhe o Symbol
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)[]
Restituisce
(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 EventEmitter
questo comportamento si comporta esattamente come la chiamata .listeners
sull'emittente.
Per EventTarget
s questo è l'unico modo per ottenere i listener di eventi per la destinazione dell'evento. Ciò è 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
Restituisce
Function[]
Ereditato da EventEmitter.getEventListeners
getMaxListeners()
Restituisce il valore del listener massimo corrente per il EventEmitter
quale è impostato per emitter.setMaxListeners(n)
impostazione predefinita o per defaultMaxListeners.
function getMaxListeners(): number
Restituisce
number
Ereditato da EventEmitter.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)
Restituisce la quantità massima attualmente impostata di listener.
Per EventEmitter
questo comportamento si comporta esattamente come la chiamata .getMaxListeners
sull'emittente.
Per EventTarget
s questo è l'unico modo per ottenere i listener di eventi max per la destinazione dell'evento. Se il numero di gestori eventi in un singolo EventTarget supera il set massimo, EventTarget visualizzerà 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
Restituisce
number
Ereditato da EventEmitter.getMaxListeners
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)
Avviso
Questa API è ora deprecata.
Since v3.2.0 - Use listenerCount
instead.
Metodo di classe che restituisce il numero di listener per il dato registrato nell'oggetto eventName
specificato 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'emittente da eseguire una query
- eventName
-
string | symbol
Nome evento
Restituisce
number
Ereditato da EventEmitter.listenerCount
listenerCount<K>(string | symbol, Function)
Restituisce il numero di listener in ascolto dell'evento denominato eventName
.
Se listener
viene specificato, restituirà il numero di volte in cui viene trovato il listener 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
Restituisce
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
Restituisce
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): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Restituisce
Ereditato da 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
Restituisce un oggetto AsyncIterator
che esegue l'iterazione degli eventName
eventi. Genererà se l'oggetto EventEmitter
genera 'error'
. Rimuove tutti i listener quando si chiude il ciclo. L'oggetto value
restituito da ogni iterazione è una matrice composta dagli argomenti dell'evento generati.
Può AbortSignal
essere usato per annullare l'attesa sugli 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());
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
Parametri
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string
Nome dell'evento in ascolto
- options
-
StaticEventEmitterOptions
Restituisce
AsyncIterableIterator<any>
Oggetto AsyncIterator
che esegue l'iterazione degli eventName
eventi generati dall'oggetto emitter
Ereditato da EventEmitter.on
on<K>(string | symbol, (args: any[]) => void)
Aggiunge la listener
funzione alla fine della matrice listener per l'evento denominato eventName
. Non vengono effettuati controlli per verificare se l'oggetto listener
è già stato aggiunto. Più chiamate passando la stessa combinazione di eventName
e listener
comportano l'aggiunta listener
e la chiamata, più volte.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
Per impostazione predefinita, i listener eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il emitter.prependListener()
metodo può essere usato come alternativa per aggiungere il listener eventi all'inizio della matrice listener dei 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): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
Nome dell'evento.
- listener
-
(args: any[]) => void
Funzione di callback
Restituisce
Ereditato da EventEmitter.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Crea un Promise
oggetto che viene soddisfatto quando l'oggetto EventEmitter
genera l'evento specificato o che viene rifiutato se l'oggetto genera 'error'
durante l'attesaEventEmitter
.
Verrà Promise
risolto con una matrice di tutti gli argomenti generati all'evento specificato.
Questo metodo è intenzionalmente generico e funziona con l'interfaccia EventTarget della piattaforma Web, che non ha semantica di 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 attendere un altro evento. Se events.once()
viene usato per attendere l'evento 'error'
stesso, viene considerato come qualsiasi altro tipo di evento senza 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
Un AbortSignal
oggetto può essere usato per annullare l'attesa 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
Restituisce
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
Restituisce
Promise<any[]>
Ereditato da EventEmitter.once
once<K>(string | symbol, (args: any[]) => void)
Aggiunge una funzione una sola voltalistener
per l'evento denominato eventName
. La volta successiva eventName
viene attivata, questo listener viene rimosso e quindi richiamato.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
Per impostazione predefinita, i listener eventi vengono richiamati nell'ordine in cui vengono aggiunti. Il emitter.prependOnceListener()
metodo può essere usato come alternativa per aggiungere il listener eventi all'inizio della matrice listener dei 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): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
Nome dell'evento.
- listener
-
(args: any[]) => void
Funzione di callback
Restituisce
Ereditato da EventEmitter.once
prependListener<K>(string | symbol, (args: any[]) => void)
Aggiunge la listener
funzione all'inizio della matrice listener per l'evento denominato eventName
. Non vengono effettuati controlli per verificare se l'oggetto listener
è già stato aggiunto. Più chiamate passando la stessa combinazione di eventName
e listener
comportano l'aggiunta listener
e la chiamata, più volte.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
Nome dell'evento.
- listener
-
(args: any[]) => void
Funzione di callback
Restituisce
Ereditato da EventEmitter.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
Aggiunge una funzione una sola voltalistener
per l'evento denominato eventName
all'inizio della matrice listener. La volta successiva eventName
viene attivata, questo listener viene rimosso e quindi richiamato.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
Nome dell'evento.
- listener
-
(args: any[]) => void
Funzione di callback
Restituisce
Ereditato da EventEmitter.prependOnceListener
rawListeners<K>(string | symbol)
Restituisce una copia della matrice di listener per l'evento denominato eventName
, inclusi 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
Restituisce
Function[]
Ereditato da EventEmitter.rawListeners
removeAllListeners(string | symbol)
Rimuove tutti i listener o quelli dell'oggetto specificato eventName
.
È consigliabile rimuovere listener aggiunti altrove nel codice, in particolare quando l'istanza EventEmitter
è stata creata da un altro componente o modulo (ad esempio socket o flussi di file).
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
function removeAllListeners(eventName?: string | symbol): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
Restituisce
Ereditato da EventEmitter.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
Rimuove l'oggetto specificato listener
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 del listener per l'oggetto specificato eventName
, è removeListener()
necessario chiamare più volte per rimuovere ogni istanza.
Una volta generato un evento, tutti i listener collegati a esso al momento dell'emissione vengono chiamati in ordine. Ciò implica che qualsiasi removeListener()
o removeAllListeners()
chiamata dopo l'emissione e prima che l'ultimo listener finisca l'esecuzione non li rimuoverà dall'avanzamentoemit()
. 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 cambierà gli indici di posizione di qualsiasi listener registrato dopo la rimozione del listener. Ciò non influisce sull'ordine in cui vengono chiamati i listener, ma significa che tutte le copie della matrice del listener restituito dal emitter.listeners()
metodo dovranno essere ricreate.
Quando una singola funzione è stata aggiunta come gestore più volte per un singolo evento (come nell'esempio seguente), removeListener()
rimuoverà l'istanza aggiunta più di recente. Nell'esempio il once('ping')
listener 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 a EventEmitter
, in modo che le chiamate possano essere concatenati.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parametri
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Restituisce
Ereditato da EventEmitter.removeListener
setMaxListeners(number)
Per impostazione predefinita EventEmitter
, verrà stampato un avviso se vengono aggiunti più 10
listener per un determinato evento. Si tratta di un valore predefinito utile che consente di trovare perdite di memoria. Il emitter.setMaxListeners()
metodo consente di modificare il limite per questa istanza specifica EventEmitter
. Il valore può essere impostato su Infinity
(o 0
) per indicare un numero illimitato di listener.
Restituisce un riferimento a EventEmitter
, in modo che le chiamate possano essere concatenati.
function setMaxListeners(n: number): SharedAccessKeyAuthenticationProvider
Parametri
- n
-
number
Restituisce
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
Numero non negativo. Numero massimo di listener per EventTarget
evento.
- eventTargets
-
(EventEmitter<DefaultEventMap> | EventTarget)[]
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@138