Twin class
Device Twin adalah dokumen yang menjelaskan status perangkat yang disimpan oleh hub Azure IoT dan tersedia bahkan jika perangkat offline. Ini dibangun sekitar 3 bagian:
- Tag: pasangan kunci/nilai hanya dapat diakses dari sisi layanan
- Properti yang Diinginkan: diperbarui oleh layanan dan diterima oleh perangkat
- Properti yang Dilaporkan: diperbarui oleh perangkat dan diterima oleh layanan.
Perhatikan bahwa meskipun itu adalah kemungkinan, properti yang diinginkan dan dilaporkan tidak harus cocok dan bahwa logika untuk menyinkronkan kedua koleksi ini, jika perlu, diserahkan kepada pengguna SDK.
Untuk informasi selengkapnya, lihat Memahami Perangkat Kembar.
- Memperluas
-
EventEmitter
Properti
| desired |
|
| error |
|
| properties | Kamus properti yang diinginkan dan dilaporkan (masing-masing dalam |
| user |
Metode
| get() | |
| get(Callback<Twin>) | Mendapatkan seluruh kembar dari layanan. |
Metode yang Diwarisi
| add |
Alias untuk |
| emit<E>(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.
|
| get |
Mengembalikan nilai pendengar maks saat ini untuk |
| listener |
Mengembalikan jumlah pendengar yang mendengarkan peristiwa bernama |
| listeners<E>(string | symbol) | Mengembalikan salinan array pendengar untuk peristiwa bernama
|
| off<E>(string | symbol, (args: any[]) => void) | Alias untuk |
| on<E>(string | symbol, (args: any[]) => void) | Menambahkan fungsi
Mengembalikan referensi ke Secara default, pendengar peristiwa dipanggil dalam urutan ditambahkan. Metode
|
| once<E>(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 panggilan apa pun
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 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 |
| [capture |
Metode ini
|
Detail Properti
desiredPath
static desiredPath: string
Nilai Properti
string
errorEvent
static errorEvent: string
Nilai Properti
string
properties
Kamus properti yang diinginkan dan dilaporkan (masing-masing dalam properties.desired dan properties.reported).
properties: TwinProperties
Nilai Properti
userRegisteredDesiredPropertiesListener
userRegisteredDesiredPropertiesListener: boolean
Nilai Properti
boolean
Detail Metode
get()
get(Callback<Twin>)
Mendapatkan seluruh kembar dari layanan.
function get(callback?: Callback<Twin>)
Parameter
- callback
-
Callback<Twin>
fungsi opsional yang akan dipanggil kembali dengan kembar atau kesalahan jika transportasi gagal mengambil kembar.
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): Twin
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): Twin
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): Twin
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 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<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
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 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): Twin
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 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<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
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): Twin
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): Twin
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): Twin
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@129