Client class
Klien layanan IoT Hub digunakan untuk berkomunikasi dengan perangkat melalui hub Azure IoT. Ini memungkinkan pengguna SDK:
- kirim cloud-to-device (juga dikenal sebagai perintah) ke perangkat: perintah diantrekan di IoT Hub dan dikirimkan secara asinkron hanya ketika perangkat terhubung. Hanya 50 perintah yang dapat diantrekan per perangkat.
- memanggil metode langsung pada perangkat (yang hanya akan berfungsi jika perangkat saat ini terhubung: ini adalah cara sinkron untuk berkomunikasi dengan perangkat)
- dengarkan pesan umpan balik yang dikirim oleh perangkat untuk perintah sebelumnya.
- dengarkan pemberitahuan unggahan file dari perangkat.
Pengguna harus membuat instans Client baru dengan memanggil salah satu metode pabrik, dariConnectionString atau dariSharedAccessSignature, untuk membuat Klien layanan IoT Hub.
- Memperluas
-
EventEmitter
Properti yang Diwariskan
capture |
Nilai: boolean Ubah opsi |
capture |
Nilai: Lihat cara menulis |
default |
Secara default, maksimum pendengar Berhati-hatilah saat mengatur Ini bukan batas yang sulit. Instans
Bendera baris perintah Peringatan yang dipancarkan dapat diperiksa dengan |
error |
Simbol ini akan digunakan untuk menginstal pendengar hanya untuk memantau peristiwa Menginstal pendengar menggunakan simbol ini tidak mengubah perilaku setelah peristiwa |
Metode
close() | |
close(Incoming |
Menutup koneksi ke hub IoT. |
from |
Membuat klien layanan IoT Hub dari string koneksi yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua. |
from |
Membuat klien layanan IoT Hub dari tanda tangan akses bersama yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua. |
from |
Membuat klien layanan IoT Hub dari tokenCredential Azure yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua. |
get |
|
get |
Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pesan umpan balik baru diterima oleh klien. |
get |
|
get |
Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pemberitahuan pengunggahan file baru diterima oleh klien. |
invoke |
|
invoke |
Memanggil metode pada perangkat atau modul tertentu. |
invoke |
|
invoke |
|
open() | |
open(Incoming |
Membuka koneksi ke hub IoT. |
send(string, Message | Buffer |
|
send(string, Message | Buffer |
Mengirim pesan ke perangkat. |
set |
Atur kebijakan yang digunakan oleh klien untuk mencoba kembali operasi jaringan. |
Metode yang Diwarisi
add |
Mendengarkan sekali untuk peristiwa Mendengarkan peristiwa API ini memungkinkan penggunaan Mengembalikan sekali pakai sehingga dapat dilepas langganannya 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 pendengar maks saat ini untuk |
get |
Mengembalikan jumlah maksimum pendengar yang saat ini ditetapkan. Untuk Untuk
|
listener |
Metode kelas yang mengembalikan jumlah pendengar untuk
|
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
Gunakan opsi
|
on(Event |
|
on<K>(string | symbol, (args: any[]) => void) | Menambahkan fungsi
Mengembalikan referensi ke Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode
|
once(Event |
Membuat Metode ini sengaja generik dan bekerja dengan platform web antarmuka EventTarget, yang tidak memiliki semantik peristiwa
Penanganan khusus peristiwa
|
once(Event |
|
once<K>(string | symbol, (args: any[]) => void) | Menambahkan fungsi
Mengembalikan referensi ke Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode
|
prepend |
Menambahkan fungsi
Mengembalikan referensi ke |
prepend |
Menambahkan fungsi
Mengembalikan referensi ke |
raw |
Mengembalikan salinan array pendengar untuk peristiwa bernama
|
remove |
Menghapus semua pendengar, atau pendengar dari Adalah praktik buruk untuk menghapus listener yang ditambahkan di tempat lain dalam kode, terutama ketika instans Mengembalikan referensi ke |
remove |
Menghapus
Setelah peristiwa dipancarkan, semua pendengar yang melekat padanya pada saat pemancaran dipanggil secara berurutan. Ini menyiratkan bahwa setiap panggilan
Karena pendengar dikelola menggunakan array internal, memanggil ini akan mengubah indeks posisi pendengar mana pun yang terdaftar setelah pendengar dihapus. Ini tidak akan berdampak pada urutan di mana pendengar dipanggil, tetapi itu berarti bahwa salinan array pendengar seperti yang dikembalikan oleh metode 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 yang Diwariskan
captureRejections
Nilai: boolean
Ubah opsi captureRejections
default pada semua objek EventEmitter
baru.
static captureRejections: boolean
Nilai Properti
boolean
Diwarisi Dari EventEmitter.captureRejections
captureRejectionSymbol
Nilai: Symbol.for('nodejs.rejection')
Lihat cara menulis rejection handler
kustom .
static captureRejectionSymbol: typeof captureRejectionSymbol
Nilai Properti
typeof captureRejectionSymbol
Diwarisi Dari EventEmitter.captureRejectionSymbol
defaultMaxListeners
Secara default, maksimum pendengar 10
dapat didaftarkan untuk setiap peristiwa tunggal. Batas ini dapat diubah untuk instans EventEmitter
individual menggunakan metode emitter.setMaxListeners(n)
. Untuk mengubah default untuk semua instansEventEmitter
, properti events.defaultMaxListeners
dapat digunakan. Jika nilai ini bukan angka positif, RangeError
akan dilemparkan.
Berhati-hatilah saat mengatur events.defaultMaxListeners
karena perubahan memengaruhi semua instansEventEmitter
, termasuk yang dibuat sebelum perubahan dilakukan. Namun, memanggil emitter.setMaxListeners(n)
masih lebih diutamakan daripada events.defaultMaxListeners
.
Ini bukan batas yang sulit. Instans EventEmitter
akan memungkinkan lebih banyak pendengar ditambahkan tetapi akan menghasilkan peringatan jejak ke stderr yang menunjukkan bahwa "kemungkinan kebocoran memori EventEmitter" telah terdeteksi. Untuk setiap EventEmitter
tunggal , metode emitter.getMaxListeners()
dan emitter.setMaxListeners()
dapat digunakan untuk sementara 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));
});
Bendera baris perintah --trace-warnings
dapat digunakan untuk menampilkan jejak tumpukan untuk peringatan tersebut.
Peringatan yang dipancarkan dapat diperiksa dengan process.on('warning')
dan akan memiliki properti tambahan emitter
, type
, dan count
, masing-masing mengacu pada instans pemancar peristiwa, nama peristiwa, dan jumlah pendengar yang terpasang.
Properti 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 peristiwa 'error'
. Listener yang diinstal menggunakan simbol ini dipanggil sebelum listener 'error'
biasa dipanggil.
Menginstal pendengar menggunakan simbol ini tidak mengubah perilaku setelah peristiwa 'error'
dipancarkan. Oleh karena itu, prosesnya masih akan crash jika tidak ada listener 'error'
reguler yang diinstal.
static errorMonitor: typeof errorMonitor
Nilai Properti
typeof errorMonitor
Diwariskan Dari EventEmitter.errorMonitor
Detail Metode
close()
function close(): Promise<ResultWithIncomingMessage<Disconnected>>
Mengembalikan
Promise<ResultWithIncomingMessage<Disconnected>>
close(IncomingMessageCallback<Disconnected>)
Menutup koneksi ke hub IoT.
function close(done?: IncomingMessageCallback<Disconnected>)
Parameter
- done
-
IncomingMessageCallback<Disconnected>
Fungsi opsional untuk dipanggil saat operasi selesai.
done
akan diteruskan argumen objek Kesalahan, yang akan null jika operasi berhasil diselesaikan.
fromConnectionString(string, TransportCtor)
Membuat klien layanan IoT Hub dari string koneksi yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua.
static function fromConnectionString(connStr: string, transportCtor?: TransportCtor): Client
Parameter
- connStr
-
string
String koneksi yang merangkum izin "device connect" pada hub IoT.
- transportCtor
- TransportCtor
Mengembalikan
fromSharedAccessSignature(string, TransportCtor)
Membuat klien layanan IoT Hub dari tanda tangan akses bersama yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor?: TransportCtor): Client
Parameter
- sharedAccessSignature
-
string
Tanda tangan akses bersama yang merangkum izin "service connect" di hub IoT.
- transportCtor
- TransportCtor
Mengembalikan
fromTokenCredential(string, TokenCredential, TransportCtor)
Membuat klien layanan IoT Hub dari tokenCredential Azure yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua.
static function fromTokenCredential(hostName: string, tokenCredential: TokenCredential, transportCtor?: TransportCtor): Client
Parameter
- hostName
-
string
Nama host layanan Azure.
- tokenCredential
- TokenCredential
Azure TokenCredential yang digunakan untuk mengautentikasi dengan layanan Azure
- transportCtor
- TransportCtor
Mengembalikan
getFeedbackReceiver()
function getFeedbackReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>
Mengembalikan
Promise<ResultWithIncomingMessage<ServiceReceiver>>
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)
Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pesan umpan balik baru diterima oleh klien.
function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)
Parameter
- done
-
IncomingMessageCallback<ServiceReceiver>
Fungsi opsional untuk dipanggil saat operasi selesai.
done
akan dipanggil dengan dua argumen: objek Kesalahan (bisa null) dan objek AmqpReceiver.
getFileNotificationReceiver()
function getFileNotificationReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>
Mengembalikan
Promise<ResultWithIncomingMessage<ServiceReceiver>>
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)
Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pemberitahuan pengunggahan file baru diterima oleh klien.
function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)
Parameter
- done
-
IncomingMessageCallback<ServiceReceiver>
Fungsi opsional untuk dipanggil saat operasi selesai.
done
akan dipanggil dengan dua argumen: objek Kesalahan (bisa null) dan objek AmqpReceiver.
invokeDeviceMethod(string, DeviceMethodParams)
function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>
Parameter
- deviceId
-
string
- methodParams
- DeviceMethodParams
Mengembalikan
Promise<ResultWithIncomingMessage<any>>
invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)
Memanggil metode pada perangkat atau modul tertentu.
function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>)
Parameter
- deviceId
-
string
Pengidentifikasi identitas perangkat yang ada.
- methodParams
- DeviceMethodParams
- done
-
IncomingMessageCallback<any>
Panggilan balik opsional untuk memanggil dengan hasil eksekusi metode.
invokeDeviceMethod(string, string, DeviceMethodParams)
function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>
Parameter
- deviceId
-
string
- moduleId
-
string
- methodParams
- DeviceMethodParams
Mengembalikan
Promise<ResultWithIncomingMessage<any>>
invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)
function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams, done: IncomingMessageCallback<any>)
Parameter
- deviceId
-
string
- moduleId
-
string
- methodParams
- DeviceMethodParams
- done
-
IncomingMessageCallback<any>
open()
function open(): Promise<ResultWithIncomingMessage<Connected>>
Mengembalikan
Promise<ResultWithIncomingMessage<Connected>>
open(IncomingMessageCallback<Connected>)
Membuka koneksi ke hub IoT.
function open(done?: IncomingMessageCallback<Connected>)
Parameter
- done
-
IncomingMessageCallback<Connected>
Fungsi opsional untuk dipanggil saat operasi selesai.
done
akan diteruskan argumen objek Kesalahan, yang akan null jika operasi berhasil diselesaikan.
send(string, Message | BufferConvertible)
function send(deviceId: string, message: Message | BufferConvertible): Promise<ResultWithIncomingMessage<MessageEnqueued>>
Parameter
- deviceId
-
string
- message
-
Message | BufferConvertible
Mengembalikan
Promise<ResultWithIncomingMessage<MessageEnqueued>>
send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)
Mengirim pesan ke perangkat.
function send(deviceId: string, message: Message | BufferConvertible, done?: IncomingMessageCallback<MessageEnqueued>)
Parameter
- deviceId
-
string
Pengidentifikasi identitas perangkat yang ada.
- message
-
Message | BufferConvertible
Isi pesan yang akan dikirim ke perangkat.
Jika message
bukan tipe Message, itu akan dikonversi.
- done
-
IncomingMessageCallback<MessageEnqueued>
Fungsi opsional untuk dipanggil saat operasi selesai.
done
akan dipanggil dengan dua argumen: objek Kesalahan (bisa null) dan objek respons khusus transportasi yang berguna untuk pengelogan atau penelusuran kesalahan.
setRetryPolicy(RetryPolicy)
Atur kebijakan yang digunakan oleh klien untuk mencoba kembali operasi jaringan.
function setRetryPolicy(policy: RetryPolicy)
Parameter
- policy
-
RetryPolicy
kebijakan yang digunakan untuk mencoba kembali operasi (misalnya. buka, kirim, dll.). SDK dilengkapi dengan 2 kebijakan "bawaan": ExponentialBackoffWithJitter (default) dan NoRetry (untuk membatalkan segala bentuk coba lagi). Pengguna juga dapat meneruskan objeknya sendiri selama menerapkan 2 metode: - shouldRetry(kesalahan: boolean: menunjukkan apakah operasi harus dicoba kembali berdasarkan jenis kesalahan - nextRetryTimeout(retryCount: number, dibatasi: boolean): angka : mengembalikan waktu untuk menunggu (dalam milidetik) sebelum mencoba kembali berdasarkan jumlah upaya sebelumnya (retryCount) dan fakta bahwa kesalahan adalah kesalahan pembatasan atau tidak.
Detail Metode yang Diwarisi
addAbortListener(AbortSignal, (event: Event) => void)
Mendengarkan sekali untuk peristiwa abort
pada signal
yang disediakan.
Mendengarkan peristiwa abort
pada sinyal batalkan 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
dengan aman di API Node.js dengan memecahkan dua masalah ini dengan mendengarkan peristiwa-sehingga stopImmediatePropagation
tidak mencegah pendengar berjalan.
Mengembalikan sekali pakai sehingga dapat dilepas langganannya 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
.
Diwariskan 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): Client
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwariskan 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
sebaliknya.
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
Diwariskan 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)[]
Diwariskan Dari EventEmitter.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)
Mengembalikan salinan array pendengar untuk peristiwa bernama eventName
.
Untuk EventEmitter
, perilaku ini sama persis dengan memanggil .listeners
pada emiter.
Untuk EventTarget
ini adalah satu-satunya cara untuk mendapatkan pendengar acara untuk target peristiwa. Ini berguna untuk penelusuran kesalahan dan tujuan 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> | EventTarget, name: string | symbol): Function[]
Parameter
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
- name
-
string | symbol
Mengembalikan
Function[]
Diwariskan Dari EventEmitter.getEventListeners
getMaxListeners()
Mengembalikan nilai pendengar maks saat ini untuk EventEmitter
yang diatur oleh emitter.setMaxListeners(n)
atau default ke defaultMaxListeners.
function getMaxListeners(): number
Mengembalikan
number
Diwariskan Dari EventEmitter.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)
Mengembalikan jumlah maksimum pendengar yang saat ini ditetapkan.
Untuk EventEmitter
, perilaku ini sama persis dengan memanggil .getMaxListeners
pada emiter.
Untuk EventTarget
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> | EventTarget): number
Parameter
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
Mengembalikan
number
Diwariskan 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 eventName
yang diberikan yang terdaftar pada emitter
yang diberikan .
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>
Pemancar ke kueri
- 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 sedang 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[]
Diwariskan Dari EventEmitter.listeners
off<K>(string | symbol, (args: any[]) => void)
Alias untuk emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwariskan Dari 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
Mengembalikan AsyncIterator
yang mengulangi peristiwa eventName
. Ini akan melemparkan jika EventEmitter
memancarkan 'error'
. Ini menghapus semua listener saat keluar dari perulangan.
value
yang dikembalikan oleh setiap iterasi adalah array yang terdiri dari argumen peristiwa yang dipancarkan.
AbortSignal
dapat 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());
Gunakan opsi close
untuk menentukan array nama peristiwa yang akan mengakhiri iterasi:
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>
Parameter
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterIteratorOptions
Mengembalikan
AsyncIterator<any[], any, any>
AsyncIterator
yang mengulangi peristiwa eventName
yang dipancarkan oleh emitter
Diwarisi Dari EventEmitter.on
on(EventTarget, string, StaticEventEmitterIteratorOptions)
static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>
Parameter
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterIteratorOptions
Mengembalikan
AsyncIterator<any[], any, any>
Diwarisi Dari EventEmitter.on
on<K>(string | symbol, (args: any[]) => void)
Menambahkan fungsi listener
ke akhir array pendengar untuk peristiwa bernama eventName
. Tidak ada pemeriksaan yang dilakukan untuk melihat apakah listener
telah ditambahkan. Beberapa panggilan yang melewati kombinasi eventName
dan listener
yang sama akan mengakibatkan listener
ditambahkan, dan dipanggil, beberapa kali.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat ditautkan.
Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode emitter.prependListener()
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): Client
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwarisi Dari EventEmitter.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Membuat Promise
yang terpenuhi ketika EventEmitter
memancarkan peristiwa yang diberikan atau yang ditolak jika EventEmitter
mengeluarkan 'error'
saat menunggu.
Promise
akan diselesaikan dengan array semua argumen yang dipancarkan ke peristiwa yang diberikan.
Metode ini sengaja generik dan bekerja dengan platform web antarmuka EventTarget, yang tidak memiliki semantik peristiwa'error'
khusus 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 khusus peristiwa 'error'
hanya digunakan ketika events.once()
digunakan untuk menunggu peristiwa lain. Jika events.once()
digunakan untuk menunggu peristiwa 'error'
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
AbortSignal
dapat 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(EventTarget, string, StaticEventEmitterOptions)
static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
Parameter
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterOptions
Mengembalikan
Promise<any[]>
Diwarisi Dari EventEmitter.once
once<K>(string | symbol, (args: any[]) => void)
Menambahkan fungsieventName
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 ditautkan.
Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode emitter.prependOnceListener()
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): Client
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)
Menambahkan fungsi listener
telah ditambahkan. Beberapa panggilan yang melewati kombinasi eventName
dan listener
yang sama akan mengakibatkan listener
ditambahkan, dan dipanggil, beberapa kali.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat ditautkan.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parameter
- eventName
-
string | symbol
Nama peristiwa.
- listener
-
(args: any[]) => void
Fungsi panggilan balik
Mengembalikan
Diwariskan Dari EventEmitter.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
Menambahkan fungsieventName
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 ditautkan.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
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[]
Diwariskan Dari EventEmitter.rawListeners
removeAllListeners(string | symbol)
Menghapus semua pendengar, atau pendengar dari eventName
yang ditentukan.
Adalah praktik buruk untuk menghapus listener yang ditambahkan di tempat lain dalam kode, terutama ketika instans EventEmitter
dibuat oleh beberapa komponen atau modul lain (misalnya soket atau aliran file).
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat ditautkan.
function removeAllListeners(eventName?: string | symbol): Client
Parameter
- eventName
-
string | symbol
Mengembalikan
Diwariskan Dari EventEmitter.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
Menghapus listener
yang ditentukan 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 eventName
yang ditentukan, 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 panggilan removeListener()
atau removeAllListeners()
setelah memancarkan dan sebelum pendengar terakhir menyelesaikan 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 mana pun yang terdaftar setelah pendengar dihapus. Ini tidak akan berdampak pada urutan di mana pendengar dipanggil, tetapi itu berarti bahwa salinan array pendengar seperti yang dikembalikan oleh metode emitter.listeners()
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 ditautkan.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parameter
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Mengembalikan
Diwariskan Dari EventEmitter.removeListener
setMaxListeners(number)
Secara default EventEmitter
akan mencetak peringatan jika lebih dari 10
pendengar ditambahkan untuk peristiwa tertentu. Ini adalah default yang berguna yang membantu menemukan kebocoran memori. Metode emitter.setMaxListeners()
memungkinkan batas untuk dimodifikasi untuk instans EventEmitter
spesifik ini. Nilai dapat diatur ke Infinity
(atau 0
) untuk menunjukkan jumlah listener yang tidak terbatas.
Mengembalikan referensi ke EventEmitter
, sehingga panggilan dapat ditautkan.
function setMaxListeners(n: number): Client
Parameter
- n
-
number
Mengembalikan
Diwarisi Dari 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)[])
Parameter
- n
-
number
Angka non-negatif. Jumlah maksimum pendengar per peristiwa EventTarget
.
- eventTargets
-
(EventEmitter<DefaultEventMap> | EventTarget)[]
Nol atau lebih {EventTarget} atau {EventEmitter} instans. Jika tidak ada yang ditentukan, n
diatur sebagai maks default untuk semua objek {EventTarget} dan {EventEmitter} yang baru dibuat.
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
Diwariskan Dari EventEmitter.__@captureRejectionSymbol@118