Bagikan melalui


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

Metode

close()
close(IncomingMessageCallback<Disconnected>)

Menutup koneksi ke hub IoT.

fromConnectionString(string, TransportCtor)

Membuat klien layanan IoT Hub dari string koneksi yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua.

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.

fromTokenCredential(string, TokenCredential, TransportCtor)

Membuat klien layanan IoT Hub dari tokenCredential Azure yang diberikan menggunakan transportasi default (Amqp) atau yang ditentukan dalam argumen kedua.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pesan umpan balik baru diterima oleh klien.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Mengembalikan objek AmqpReceiver yang memancarkan peristiwa saat pemberitahuan pengunggahan file baru diterima oleh klien.

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

Memanggil metode pada perangkat atau modul tertentu.

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

Membuka koneksi ke hub IoT.

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

Mengirim pesan ke perangkat.

setRetryPolicy(RetryPolicy)

Atur kebijakan yang digunakan oleh klien untuk mencoba kembali operasi jaringan.

Metode yang Diwarisi

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

Alias untuk emitter.on(eventName, listener).

emit<E>(string | symbol, any[])

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

Mengembalikan array yang mencantumkan peristiwa di mana pemancar telah mendaftarkan pendengar.

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

Mengembalikan nilai pendengar maks saat ini untuk EventEmitter yang diatur oleh emitter.setMaxListeners(n) atau default ke events.defaultMaxListeners.

listenerCount<E>(string | symbol, (args: any[]) => void)

Mengembalikan jumlah pendengar yang mendengarkan peristiwa bernama eventName. Jika listener disediakan, itu akan mengembalikan berapa kali pendengar ditemukan dalam daftar pendengar acara.

listeners<E>(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] ]
off<E>(string | symbol, (args: any[]) => void)

Alias untuk emitter.removeListener().

on<E>(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
once<E>(string | symbol, (args: any[]) => void)

Menambahkan fungsi satu kali untuk peristiwa bernama . 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 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
prependListener<E>(string | symbol, (args: any[]) => void)

Menambahkan fungsi ke awal array pendengar untuk peristiwa bernama . 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.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Mengembalikan referensi ke EventEmitter, sehingga panggilan dapat ditautkan.

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

Menambahkan fungsi satu kali untuk peristiwa bernama 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 ditautkan.

rawListeners<E>(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');
removeAllListeners<E>(string | symbol)

Menghapus semua pendengar, atau pendengar dari eventNameyang 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.

removeListener<E>(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 eventNameyang 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 panggilan apa pun removeListener()removeAllListeners() memancarkan dan sebelum pemroses terakhir menyelesaikan eksekusi tidak akan menghapusnya dari emit() 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 pemroses dikelola menggunakan array internal, memanggil ini akan mengubah indeks posisi pemroses mana pun yang terdaftar setelah pemroses 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.

setMaxListeners(number)

Secara default EventEmitterakan 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.

[captureRejectionSymbol](Error, string | symbol, any[])

Metode ini Symbol.for('nodejs.rejection') dipanggil jika penolakan janji terjadi saat memancarkan peristiwa dan captureRejections diaktifkan pada emitor. Dimungkinkan untuk digunakan events.captureRejectionSymbol sebagai pengganti Symbol.for('nodejs.rejection').

import { EventEmitter, captureRejectionSymbol } from 'node:events';

class MyClass extends EventEmitter {
  constructor() {
    super({ captureRejections: true });
  }

  [captureRejectionSymbol](err, event, ...args) {
    console.log('rejection happened for', event, 'with', err, ...args);
    this.destroy(err);
  }

  destroy(err) {
    // Tear the resource down here.
  }
}

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

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

Alias untuk emitter.on(eventName, listener).

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

Parameter

eventName

string | symbol

listener

(args: any[]) => void

Mengembalikan

Diwariskan Dari EventEmitter.addListener

emit<E>(string | symbol, any[])

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<E>(eventName: string | symbol, args: any[]): boolean

Parameter

eventName

string | symbol

args

any[]

Mengembalikan

boolean

Diwariskan Dari EventEmitter.emit

eventNames()

Mengembalikan array yang mencantumkan peristiwa di mana pemancar telah mendaftarkan pendengar.

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

getMaxListeners()

Mengembalikan nilai pendengar maks saat ini untuk EventEmitter yang diatur oleh emitter.setMaxListeners(n) atau default ke events.defaultMaxListeners.

function getMaxListeners(): number

Mengembalikan

number

Diwariskan Dari EventEmitter.getMaxListeners

listenerCount<E>(string | symbol, (args: any[]) => void)

Mengembalikan jumlah pendengar yang mendengarkan peristiwa bernama eventName. Jika listener disediakan, itu akan mengembalikan berapa kali pendengar ditemukan dalam daftar pendengar acara.

function listenerCount<E>(eventName: string | symbol, listener?: (args: any[]) => void): number

Parameter

eventName

string | symbol

Nama peristiwa yang sedang didengarkan

listener

(args: any[]) => void

Fungsi penanganan aktivitas

Mengembalikan

number

Diwarisi Dari EventEmitter.listenerCount

listeners<E>(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<E>(eventName: string | symbol): (args: any[]) => void[]

Parameter

eventName

string | symbol

Mengembalikan

(args: any[]) => void[]

Diwariskan Dari EventEmitter.listeners

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

Alias untuk emitter.removeListener().

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

Parameter

eventName

string | symbol

listener

(args: any[]) => void

Mengembalikan

Diwariskan Dari EventEmitter.off

on<E>(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<E>(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<E>(string | symbol, (args: any[]) => void)

Menambahkan fungsi satu kali untuk peristiwa bernama . 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 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<E>(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<E>(string | symbol, (args: any[]) => void)

Menambahkan fungsi ke awal array pendengar untuk peristiwa bernama . 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.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Mengembalikan referensi ke EventEmitter, sehingga panggilan dapat ditautkan.

function prependListener<E>(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<E>(string | symbol, (args: any[]) => void)

Menambahkan fungsi satu kali untuk peristiwa bernama 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 ditautkan.

function prependOnceListener<E>(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<E>(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<E>(eventName: string | symbol): (args: any[]) => void[]

Parameter

eventName

string | symbol

Mengembalikan

(args: any[]) => void[]

Diwariskan Dari EventEmitter.rawListeners

removeAllListeners<E>(string | symbol)

Menghapus semua pendengar, atau pendengar dari eventNameyang 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<E>(eventName?: string | symbol): Client

Parameter

eventName

string | symbol

Mengembalikan

Diwariskan Dari EventEmitter.removeAllListeners

removeListener<E>(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 eventNameyang 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 panggilan apa pun removeListener()removeAllListeners() memancarkan dan sebelum pemroses terakhir menyelesaikan eksekusi tidak akan menghapusnya dari emit() 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 pemroses dikelola menggunakan array internal, memanggil ini akan mengubah indeks posisi pemroses mana pun yang terdaftar setelah pemroses 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<E>(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 EventEmitterakan 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

[captureRejectionSymbol](Error, string | symbol, any[])

Metode ini Symbol.for('nodejs.rejection') dipanggil jika penolakan janji terjadi saat memancarkan peristiwa dan captureRejections diaktifkan pada emitor. Dimungkinkan untuk digunakan events.captureRejectionSymbol sebagai pengganti Symbol.for('nodejs.rejection').

import { EventEmitter, captureRejectionSymbol } from 'node:events';

class MyClass extends EventEmitter {
  constructor() {
    super({ captureRejections: true });
  }

  [captureRejectionSymbol](err, event, ...args) {
    console.log('rejection happened for', event, 'with', err, ...args);
    this.destroy(err);
  }

  destroy(err) {
    // Tear the resource down here.
  }
}
function [captureRejectionSymbol](error: Error, event: string | symbol, args: any[])

Parameter

error

Error

event

string | symbol

args

any[]

Diwarisi dari EventEmitter.__@captureRejectionSymbol@90