SharedAccessKeyAuthenticationProvider class
AuthenticationProvider
Menyediakan objek yang dapat dibuat hanya dengan string koneksi dan kemudian digunakan oleh klien perangkat dan transportasi untuk mengautentikasi dengan instans hub Azure IoT.
Objek mengurus SharedAccessKeyAuthenticationProvider
pembuatan token tanda tangan akses bersama pada irama reguler dan memancarkan newTokenAvailable
peristiwa bagi transportasi untuk memperbarui kredensial mereka dengan instans hub Azure IoT dan tetap terhubung.
- Extends
-
EventEmitter
Properti
type |
Properti yang Diwariskan
capture |
Nilai: boolean Ubah opsi default |
capture |
Nilai: Lihat cara menulis kustom |
default |
Secara default, maksimum Berhati-hatilah saat mengatur Ini bukan batas yang sulit.
Peringatan yang dipancarkan dapat diperiksa dengan |
error |
Simbol ini akan digunakan untuk menginstal pendengar hanya untuk memantau Menginstal pendengar menggunakan simbol ini tidak mengubah perilaku setelah |
Metode
from |
Membuat baru |
get |
|
get |
Metode ini digunakan oleh transportasi untuk mendapatkan kredensial perangkat terbaru dalam bentuk |
set |
Metode ini memungkinkan pemanggil untuk mengatur nilai baru untuk perpanjangan autentikasi. Fungsi ini selesai secara sinkron, TETAPI, akan menyebabkan tindakan terjadi secara asinkron. Jika penyedia sudah melakukan perpanjangan token, misalnya - jika koneksi jaringan telah dibuat, memanggil fungsi ini akan menyebabkan perpanjangan baru terjadi segera. Tergantung pada protokol, ini dapat menyebabkan pemutusan sambungan dan koneksi ulang terjadi. Namun, jika perpanjangan TIDAK saat ini terjadi, kita cukup menyimpan nilai baru untuk digunakan nanti. |
stop() | Menghentikan timer yang digunakan untuk memperbarui ke token SAS. |
Metode yang Diwarisi
add |
Mendengarkan sekali ke Mendengarkan API ini memungkinkan penggunaan Mengembalikan sekali pakai sehingga mungkin berhenti berlangganan dengan lebih mudah.
|
add |
Alias untuk |
emit<K>(string | symbol, Any |
Secara sinkron memanggil masing-masing pendengar yang terdaftar untuk peristiwa bernama Mengembalikan
|
event |
Mengembalikan array yang mencantumkan peristiwa di mana pemancar telah mendaftarkan pendengar. Nilai dalam array adalah string atau
|
get |
Mengembalikan salinan array pendengar untuk peristiwa bernama Untuk Untuk
|
get |
Mengembalikan nilai |
get |
Mengembalikan jumlah maksimum pendengar yang saat ini ditetapkan. Untuk Untuk
|
listener |
Metode kelas yang mengembalikan jumlah pendengar untuk yang diberikan
|
listener |
Mengembalikan jumlah pendengar yang mendengarkan peristiwa bernama |
listeners<K>(string | symbol) | Mengembalikan salinan array pendengar untuk peristiwa bernama
|
off<K>(string | symbol, (args: any[]) => void) | Alias untuk |
on(Event |
Mengembalikan yang Dapat
|
on<K>(string | symbol, (args: any[]) => void) |
Mengembalikan referensi ke Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode
|
once(Event |
Metode ini sengaja umum dan bekerja dengan platform web antarmuka EventTarget, yang tidak memiliki semantik peristiwa khusus
Penanganan
Dapat
|
once(_DOMEvent |
|
once<K>(string | symbol, (args: any[]) => void) | Menambahkan fungsi satu kali
Mengembalikan referensi ke Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode
|
prepend |
Mengembalikan referensi ke |
prepend |
Menambahkan fungsi satu kali
Mengembalikan referensi ke |
raw |
Mengembalikan salinan array pendengar untuk peristiwa bernama
|
remove |
Menghapus semua pendengar, atau yang ditentukan Adalah praktik buruk untuk menghapus pendengar yang ditambahkan di tempat lain dalam kode, terutama ketika Mengembalikan referensi ke |
remove |
Menghapus yang ditentukan
Setelah peristiwa dipancarkan, semua pendengar yang melekat padanya pada saat pemancaran dipanggil secara berurutan. Ini menyiratkan bahwa setiap
Karena pendengar dikelola menggunakan array internal, memanggil ini akan mengubah indeks posisi pendengar apa pun yang terdaftar setelah pendengar dihapus. Ini tidak akan berdampak pada urutan di mana pendengar dipanggil, tetapi itu berarti bahwa setiap salinan array pendengar seperti yang dikembalikan oleh Ketika satu fungsi telah ditambahkan sebagai handler beberapa kali untuk satu peristiwa (seperti dalam contoh di bawah),
Mengembalikan referensi ke |
set |
Secara default Mengembalikan referensi ke |
set |
|
[capture |
Detail Properti
type
type: AuthenticationType
Nilai Properti
AuthenticationType
Detail Properti yang Diwariskan
captureRejections
Nilai: boolean
Ubah opsi default captureRejections
pada semua objek baru EventEmitter
.
static captureRejections: boolean
Nilai Properti
boolean
Diwarisi Dari EventEmitter.captureRejections
captureRejectionSymbol
Nilai: Symbol.for('nodejs.rejection')
Lihat cara menulis kustom rejection handler
.
static captureRejectionSymbol: typeof captureRejectionSymbol
Nilai Properti
typeof captureRejectionSymbol
Diwarisi Dari EventEmitter.captureRejectionSymbol
defaultMaxListeners
Secara default, maksimum 10
pendengar dapat didaftarkan untuk setiap peristiwa. Batas ini dapat diubah untuk instans individual EventEmitter
menggunakan emitter.setMaxListeners(n)
metode . Untuk mengubah default untuk semuaEventEmitter
instans, events.defaultMaxListeners
properti dapat digunakan. Jika nilai ini bukan angka positif, akan RangeError
dilemparkan.
Berhati-hatilah saat mengatur events.defaultMaxListeners
karena perubahan memengaruhi semuaEventEmitter
instans, termasuk yang dibuat sebelum perubahan dilakukan. Namun, panggilan emitter.setMaxListeners(n)
masih lebih diutamakan daripada events.defaultMaxListeners
.
Ini bukan batas yang sulit. EventEmitter
Instans akan memungkinkan lebih banyak pendengar ditambahkan tetapi akan menghasilkan peringatan jejak ke stderr yang menunjukkan bahwa "kemungkinan kebocoran memori EventEmitter" telah terdeteksi. Untuk satu EventEmitter
metode , emitter.getMaxListeners()
dan emitter.setMaxListeners()
dapat digunakan untuk sementara waktu menghindari peringatan ini:
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));
});
--trace-warnings
Bendera baris perintah dapat digunakan untuk menampilkan jejak tumpukan untuk peringatan tersebut.
Peringatan yang dipancarkan dapat diperiksa dengan process.on('warning')
dan akan memiliki properti , , type
dan count
tambahanemitter
, yang mengacu pada instans pemancar peristiwa, nama peristiwa, dan jumlah pendengar yang terpasang, masing-masing.
Propertinya name
diatur ke 'MaxListenersExceededWarning'
.
static defaultMaxListeners: number
Nilai Properti
number
Diwarisi Dari EventEmitter.defaultMaxListeners
errorMonitor
Simbol ini akan digunakan untuk menginstal pendengar hanya untuk memantau 'error'
peristiwa. Listener yang diinstal menggunakan simbol ini dipanggil sebelum listener reguler 'error'
dipanggil.
Menginstal pendengar menggunakan simbol ini tidak mengubah perilaku setelah 'error'
peristiwa dipancarkan. Oleh karena itu, prosesnya akan tetap crash jika tidak ada listener reguler 'error'
yang diinstal.
static errorMonitor: typeof errorMonitor
Nilai Properti
typeof errorMonitor
Diwarisi Dari EventEmitter.errorMonitor
Detail Metode
fromConnectionString(string, number, number)
Membuat baru SharedAccessKeyAuthenticationProvider
dari string koneksi
static function fromConnectionString(connectionString: string, tokenValidTimeInSeconds?: number, tokenRenewalMarginInSeconds?: number): SharedAccessKeyAuthenticationProvider
Parameter
- connectionString
-
string
Perangkat string koneksi yang berisi parameter yang diperlukan untuk autentikasi dengan hub IoT.
- tokenValidTimeInSeconds
-
number
[opsional] Jumlah detik di mana token seharusnya valid.
- tokenRenewalMarginInSeconds
-
number
[opsional] Jumlah detik sebelum akhir periode validitas di mana SharedAccessKeyAuthenticationProvider
harus memperbarui token.
Mengembalikan
getDeviceCredentials()
function getDeviceCredentials(): Promise<TransportConfig>
Mengembalikan
Promise<TransportConfig>
getDeviceCredentials(Callback<TransportConfig>)
Metode ini digunakan oleh transportasi untuk mendapatkan kredensial perangkat terbaru dalam bentuk TransportConfig
objek.
function getDeviceCredentials(callback?: Callback<TransportConfig>)
Parameter
- callback
-
Callback<TransportConfig>
fungsi opsional yang akan dipanggil dengan kesalahan atau sekumpulan kredensial perangkat yang dapat digunakan untuk mengautentikasi dengan hub IoT.
setTokenRenewalValues(number, number)
Metode ini memungkinkan pemanggil untuk mengatur nilai baru untuk perpanjangan autentikasi.
Fungsi ini selesai secara sinkron, TETAPI, akan menyebabkan tindakan terjadi secara asinkron. Jika penyedia sudah melakukan perpanjangan token, misalnya - jika koneksi jaringan telah dibuat, memanggil fungsi ini akan menyebabkan perpanjangan baru terjadi segera. Tergantung pada protokol, ini dapat menyebabkan pemutusan sambungan dan koneksi ulang terjadi. Namun, jika perpanjangan TIDAK saat ini terjadi, kita cukup menyimpan nilai baru untuk digunakan nanti.
function setTokenRenewalValues(tokenValidTimeInSeconds: number, tokenRenewalMarginInSeconds: number)
Parameter
- tokenValidTimeInSeconds
-
number
Jumlah detik di mana token seharusnya valid.
- tokenRenewalMarginInSeconds
-
number
Jumlah detik sebelum akhir periode validitas di mana SharedAccessKeyAuthenticationProvider
harus memperbarui token.
stop()
Menghentikan timer yang digunakan untuk memperbarui ke token SAS.
function stop()
Detail Metode yang Diwarisi
addAbortListener(AbortSignal, (event: Event) => void)
Mendengarkan sekali ke abort
acara pada yang disediakan signal
.
Mendengarkan abort
peristiwa pada sinyal yang dibatalkan tidak aman dan dapat menyebabkan kebocoran sumber daya karena pihak ketiga lain dengan sinyal dapat memanggil e.stopImmediatePropagation()
. Sayangnya Node.js tidak dapat mengubah ini karena akan melanggar standar web. Selain itu, API asli memudahkan untuk lupa menghapus pendengar.
API ini memungkinkan penggunaan AbortSignal
API yang Node.js dengan aman dengan memecahkan kedua masalah ini dengan mendengarkan peristiwa sehingga stopImmediatePropagation
tidak mencegah pendengar berjalan.
Mengembalikan sekali pakai sehingga mungkin berhenti berlangganan dengan lebih mudah.
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
Parameter
- signal
-
AbortSignal
- resource
-
(event: Event) => void
Mengembalikan
Disposable
Sekali pakai yang menghapus pendengar abort
.
Diwarisi Dari EventEmitter.addAbortListener
addListener<K>(string | symbol, (args: any[]) => void)
Alias untuk emitter.on(eventName, listener)
.
function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwarisi Dari EventEmitter.addListener
emit<K>(string | symbol, AnyRest)
Secara sinkron memanggil masing-masing pendengar yang terdaftar untuk peristiwa bernama eventName
, dalam urutan terdaftar, meneruskan argumen yang disediakan ke masing-masing.
Mengembalikan true
jika peristiwa memiliki pendengar, false
jika tidak.
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
Parameter
- eventName
-
string | symbol
- args
-
AnyRest
Mengembalikan
boolean
Diwarisi Dari EventEmitter.emit
eventNames()
Mengembalikan array yang mencantumkan peristiwa di mana pemancar telah mendaftarkan pendengar. Nilai dalam array adalah string atau 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)[]
Mengembalikan
(string | symbol)[]
Diwarisi Dari EventEmitter.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget, string | symbol)
Mengembalikan salinan array pendengar untuk peristiwa bernama eventName
.
Untuk EventEmitter
ini berakibat persis sama dengan memanggil .listeners
pada emiter.
Untuk EventTarget
ini adalah satu-satunya cara untuk mendapatkan pendengar peristiwa untuk target peristiwa. Ini berguna untuk tujuan penelusuran kesalahan dan diagnostik.
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> | _DOMEventTarget, name: string | symbol): Function[]
Parameter
- emitter
-
EventEmitter<DefaultEventMap> | _DOMEventTarget
- name
-
string | symbol
Mengembalikan
Function[]
Diwarisi Dari EventEmitter.getEventListeners
getMaxListeners()
Mengembalikan nilai EventEmitter
pendengar maks saat ini yang diatur oleh emitter.setMaxListeners(n)
atau default ke defaultMaxListeners.
function getMaxListeners(): number
Mengembalikan
number
Diwarisi Dari EventEmitter.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)
Mengembalikan jumlah maksimum pendengar yang saat ini ditetapkan.
Untuk EventEmitter
ini berakibat persis sama dengan memanggil .getMaxListeners
pada emiter.
Untuk EventTarget
s ini adalah satu-satunya cara untuk mendapatkan pendengar peristiwa maksimum untuk target peristiwa. Jika jumlah penanganan aktivitas pada satu EventTarget melebihi set maksimum, EventTarget akan mencetak peringatan.
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> | _DOMEventTarget): number
Parameter
- emitter
-
EventEmitter<DefaultEventMap> | _DOMEventTarget
Mengembalikan
number
Diwarisi Dari EventEmitter.getMaxListeners
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)
Peringatan
API ini sudah tidak digunakan lagi.
Since v3.2.0 - Use listenerCount
instead.
Metode kelas yang mengembalikan jumlah pendengar untuk yang diberikan eventName
yang terdaftar pada yang diberikan 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
Parameter
- emitter
-
EventEmitter<DefaultEventMap>
Emiter yang akan dikueri
- eventName
-
string | symbol
Nama peristiwa
Mengembalikan
number
Diwarisi Dari EventEmitter.listenerCount
listenerCount<K>(string | symbol, Function)
Mengembalikan jumlah pendengar yang mendengarkan peristiwa bernama eventName
.
Jika listener
disediakan, itu akan mengembalikan berapa kali pendengar ditemukan dalam daftar pendengar acara.
function listenerCount<K>(eventName: string | symbol, listener?: Function): number
Parameter
- eventName
-
string | symbol
Nama peristiwa yang didengarkan
- listener
-
Function
Fungsi penanganan aktivitas
Mengembalikan
number
Diwarisi Dari EventEmitter.listenerCount
listeners<K>(string | symbol)
Mengembalikan salinan array pendengar untuk peristiwa bernama 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[]
Parameter
- eventName
-
string | symbol
Mengembalikan
Function[]
Diwarisi Dari EventEmitter.listeners
off<K>(string | symbol, (args: any[]) => void)
Alias untuk emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwarisi Dari 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
Mengembalikan yang AsyncIterator
mengulangi eventName
peristiwa. Ini akan melemparkan jika memancarkan EventEmitter
'error'
. Ini menghapus semua pendengar saat keluar dari perulangan. yang value
dikembalikan oleh setiap perulangan adalah array yang terdiri dari argumen peristiwa yang dipancarkan.
Dapat AbortSignal
digunakan untuk membatalkan menunggu acara:
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>
Parameter
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string
Nama peristiwa yang didengarkan
- options
-
StaticEventEmitterOptions
Mengembalikan
AsyncIterableIterator<any>
Yang AsyncIterator
mengulangi eventName
peristiwa yang dipancarkan oleh emitter
Diwarisi Dari EventEmitter.on
on<K>(string | symbol, (args: any[]) => void)
listener
Menambahkan fungsi ke akhir array pendengar untuk peristiwa bernama eventName
. Tidak ada pemeriksaan yang dilakukan untuk melihat apakah listener
telah ditambahkan. Beberapa panggilan melewati kombinasi eventName
yang sama dan listener
akan mengakibatkan listener
ditambahkan, dan dipanggil, beberapa kali.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode emitter.prependListener()
ini dapat digunakan sebagai alternatif untuk menambahkan pendengar peristiwa ke awal array pendengar.
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
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwarisi Dari EventEmitter.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Promise
Membuat yang terpenuhi saat memancarkan EventEmitter
peristiwa yang diberikan atau yang ditolak jika memancarkan EventEmitter
'error'
saat menunggu.
Promise
akan diselesaikan dengan array semua argumen yang dipancarkan ke peristiwa yang diberikan.
Metode ini sengaja umum dan bekerja dengan platform web antarmuka EventTarget, yang tidak memiliki semantik peristiwa khusus'error'
dan tidak mendengarkan peristiwa.'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);
}
Penanganan 'error'
khusus acara hanya digunakan ketika events.once()
digunakan untuk menunggu peristiwa lain. Jika events.once()
digunakan untuk menunggu 'error'
peristiwa itu sendiri, maka itu diperlakukan sebagai jenis peristiwa lain tanpa penanganan khusus:
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
Dapat AbortSignal
digunakan untuk membatalkan menunggu acara:
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[]>
Parameter
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterOptions
Mengembalikan
Promise<any[]>
Diwarisi Dari EventEmitter.once
once(_DOMEventTarget, string, StaticEventEmitterOptions)
static function once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
Parameter
- emitter
-
_DOMEventTarget
- eventName
-
string
- options
-
StaticEventEmitterOptions
Mengembalikan
Promise<any[]>
Diwarisi Dari EventEmitter.once
once<K>(string | symbol, (args: any[]) => void)
Menambahkan fungsi satu kalilistener
untuk peristiwa bernama eventName
. Lain kali eventName
dipicu, pendengar ini dihapus lalu dipanggil.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode emitter.prependOnceListener()
ini dapat digunakan sebagai alternatif untuk menambahkan pendengar peristiwa ke awal array pendengar.
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
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwarisi Dari EventEmitter.once
prependListener<K>(string | symbol, (args: any[]) => void)
listener
Menambahkan fungsi ke awal array pendengar untuk peristiwa bernama eventName
. Tidak ada pemeriksaan yang dilakukan untuk melihat apakah listener
telah ditambahkan. Beberapa panggilan melewati kombinasi eventName
yang sama dan listener
akan mengakibatkan listener
ditambahkan, dan dipanggil, beberapa kali.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwarisi Dari EventEmitter.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
Menambahkan fungsi satu kalilistener
untuk peristiwa bernama eventName
ke awal array pendengar. Lain kali eventName
dipicu, pendengar ini dihapus, lalu dipanggil.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwarisi Dari EventEmitter.prependOnceListener
rawListeners<K>(string | symbol)
Mengembalikan salinan array pendengar untuk peristiwa bernama eventName
, termasuk pembungkus apa pun (seperti yang dibuat oleh .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[]
Parameter
- eventName
-
string | symbol
Mengembalikan
Function[]
Diwarisi Dari EventEmitter.rawListeners
removeAllListeners(string | symbol)
Menghapus semua pendengar, atau yang ditentukan eventName
.
Adalah praktik buruk untuk menghapus pendengar yang ditambahkan di tempat lain dalam kode, terutama ketika EventEmitter
instans dibuat oleh beberapa komponen atau modul lain (misalnya soket atau aliran file).
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
function removeAllListeners(eventName?: string | symbol): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
Mengembalikan
Diwarisi Dari EventEmitter.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
Menghapus yang ditentukan listener
dari array pendengar untuk peristiwa bernama eventName
.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener()
akan menghapus, paling banyak, satu instans pendengar dari array pendengar. Jika ada pendengar tunggal yang telah ditambahkan beberapa kali ke array pendengar untuk yang ditentukan eventName
, maka removeListener()
harus dipanggil beberapa kali untuk menghapus setiap instans.
Setelah peristiwa dipancarkan, semua pendengar yang melekat padanya pada saat pemancaran dipanggil secara berurutan. Ini menyiratkan bahwa setiap removeListener()
atau removeAllListeners()
panggilan setelah memancarkan dan sebelum pendengar terakhir selesai, eksekusi tidak akan menghapusnya dariemit()
sedang berlangsung. Peristiwa berikutnya berulah seperti yang diharapkan.
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
Karena pendengar dikelola menggunakan array internal, memanggil ini akan mengubah indeks posisi pendengar apa pun yang terdaftar setelah pendengar dihapus. Ini tidak akan berdampak pada urutan di mana pendengar dipanggil, tetapi itu berarti bahwa setiap salinan array pendengar seperti yang dikembalikan oleh emitter.listeners()
metode perlu dibuat ulang.
Ketika satu fungsi telah ditambahkan sebagai handler beberapa kali untuk satu peristiwa (seperti dalam contoh di bawah), removeListener()
akan menghapus instans yang terakhir ditambahkan. Dalam contoh pendengar once('ping')
dihapus:
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');
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): SharedAccessKeyAuthenticationProvider
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwarisi Dari EventEmitter.removeListener
setMaxListeners(number)
Secara default EventEmitter
s akan mencetak peringatan jika lebih dari 10
pendengar ditambahkan untuk peristiwa tertentu. Ini adalah default yang berguna yang membantu menemukan kebocoran memori. Metode ini emitter.setMaxListeners()
memungkinkan batas untuk dimodifikasi untuk instans tertentu EventEmitter
ini. Nilai dapat diatur ke Infinity
(atau 0
) untuk menunjukkan jumlah listener yang tidak terbatas.
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat dirangkai.
function setMaxListeners(n: number): SharedAccessKeyAuthenticationProvider
Parameter
- n
-
number
Mengembalikan
Diwarisi Dari EventEmitter.setMaxListeners
setMaxListeners(number, (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])
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> | _DOMEventTarget)[])
Parameter
- n
-
number
Angka non-negatif. Jumlah maksimum pendengar per EventTarget
peristiwa.
- eventTargets
-
(EventEmitter<DefaultEventMap> | _DOMEventTarget)[]
Diwarisi Dari EventEmitter.setMaxListeners
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)
function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)
Parameter
- error
-
Error
- event
-
string | symbol
- args
-
AnyRest
Diwarisi Dari EventEmitter.__@captureRejectionSymbol@138