Twin class
Cihaz İkizi, Azure IoT hub'ı tarafından depolanan ve cihaz çevrimdışı olsa bile kullanılabilen bir cihazın durumunu açıklayan belgedir. Yaklaşık 3 bölüme sahiptir:
- Etiketler: anahtar/değer çiftlerine yalnızca hizmet tarafından erişilebilir
- İstenen Özellikler: Bir hizmet tarafından güncelleştirildi ve cihaz tarafından alındı
- Bildirilen Özellikler: cihaz tarafından güncelleştirildi ve hizmet tarafından alındı.
Bu bir olasılık olsa da, istenen ve bildirilen özelliklerin eşleşmesi gerekmediğini ve gerekirse bu iki koleksiyonu eşitleme mantığının SDK kullanıcısına bırakıldığını unutmayın.
Daha fazla bilgi için bkz. Device Twins'i anlama.
- Extends
-
EventEmitter
Özellikler
| desired |
|
| error |
|
| properties | İstenen ve bildirilen özellikler sözlükleri (sırasıyla |
| user |
Yöntemler
| get() | |
| get(Callback<Twin>) | Hizmetten ikizin tamamını alır. |
Devralınan Yöntemler
| add |
|
| emit<E>(string | symbol, any[]) |
Olayın dinleyicileri varsa
|
| event |
Vericinin dinleyicileri kaydettiği olayları listeleyen bir dizi döndürür.
|
| get |
|
| listener |
|
| listeners<E>(string | symbol) |
|
| off<E>(string | symbol, (args: any[]) => void) |
|
| on<E>(string | symbol, (args: any[]) => void) |
Çağrıların zincirlenebilmesi için Varsayılan olarak, olay dinleyicileri eklendikleri sırayla çağrılır.
|
| once<E>(string | symbol, (args: any[]) => void) |
adlı olay için tek seferlik bir
Çağrıların zincirlenebilmesi için Varsayılan olarak, olay dinleyicileri eklendikleri sırayla çağrılır.
|
| prepend |
Çağrıların zincirlenebilmesi için |
| prepend |
dinleyiciler dizisinin başlayan
Çağrıların zincirlenebilmesi için |
| raw |
tüm sarmalayıcılar (
|
| remove |
Tüm dinleyicileri veya belirtilen Özellikle Çağrıların zincirlenebilmesi için |
| remove |
Bir olay yayımlandıktan sonra, yayma sırasında ona eklenen tüm dinleyiciler sırayla çağrılır. Bu,
Dinleyiciler dahili bir diziyle yönetildiği için, bunu çağırmak, dinleyici çıkarıldıktan sonra kayıtlı herhangi bir dinleyicinin konum indekslerini değiştirir. Bu, dinleyicilerin çağrılma sırasını etkilemez, ancak Tek bir işlev tek bir olay için birden çok kez işleyici olarak eklendiğinde (aşağıdaki örnekte olduğu gibi),
Çağrıların zincirlenebilmesi için |
| set |
Varsayılan olarak, belirli bir olay için Çağrıların zincirlenebilmesi için |
| [capture |
Yöntem,
|
Özellik Ayrıntıları
desiredPath
static desiredPath: string
Özellik Değeri
string
errorEvent
static errorEvent: string
Özellik Değeri
string
properties
İstenen ve bildirilen özellikler sözlükleri (sırasıyla properties.desired ve properties.reported).
properties: TwinProperties
Özellik Değeri
userRegisteredDesiredPropertiesListener
userRegisteredDesiredPropertiesListener: boolean
Özellik Değeri
boolean
Yöntem Ayrıntıları
get()
get(Callback<Twin>)
Hizmetten ikizin tamamını alır.
function get(callback?: Callback<Twin>)
Parametreler
- callback
-
Callback<Twin>
ikizi geri çağıracak isteğe bağlı işlev veya aktarım ikizi alamazsa bir hata.
Devralınan Yöntemin Ayrıntıları
addListener<E>(string | symbol, (args: any[]) => void)
emitter.on(eventName, listener)için diğer ad.
function addListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
Parametreler
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Döndürülenler
EventEmitter.addListener Devralındı
emit<E>(string | symbol, any[])
eventNameadlı olay için kaydedilen dinleyicilerin her birini, kaydedildikleri sırayla zaman uyumlu olarak çağırır ve sağlanan bağımsız değişkenleri her birine geçirir.
Olayın dinleyicileri varsa true döndürür, aksi takdirde false.
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
Parametreler
- eventName
-
string | symbol
- args
-
any[]
Döndürülenler
boolean
EventEmitter.emit Devralındı
eventNames()
Vericinin dinleyicileri kaydettiği olayları listeleyen bir dizi döndürür.
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)[]
Döndürülenler
(string | symbol)[]
EventEmitter.eventNames Devralındı
getMaxListeners()
EventEmitter veya varsayılan olarak emitter.setMaxListeners(n)olarak ayarlanan events.defaultMaxListeners için geçerli en yüksek dinleyici değerini döndürür.
function getMaxListeners(): number
Döndürülenler
number
EventEmitter.getMaxListeners'dan Devralınan
listenerCount<E>(string | symbol, (args: any[]) => void)
eventNameadlı olayı dinleyen dinleyici sayısını döndürür.
listener sağlanırsa, dinleyicinin olay dinleyicileri listesinde kaç kez bulunduğunu döndürür.
function listenerCount<E>(eventName: string | symbol, listener?: (args: any[]) => void): number
Parametreler
- eventName
-
string | symbol
Dinlenen olayın adı
- listener
-
(args: any[]) => void
Olay işleyici işlevi
Döndürülenler
number
EventEmitter.listenerCount Devralındı
listeners<E>(string | symbol)
eventNameadlı olay için dinleyici dizisinin bir kopyasını döndürür.
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[]
Parametreler
- eventName
-
string | symbol
Döndürülenler
(args: any[]) => void[]
EventEmitter.listeners Devralındı
off<E>(string | symbol, (args: any[]) => void)
emitter.removeListener()için diğer ad.
function off<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
Parametreler
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Döndürülenler
EventEmitter.off Devralındı
on<E>(string | symbol, (args: any[]) => void)
listener işlevini eventNameadlı olay için dinleyiciler dizisinin sonuna ekler.
listener eklenip eklenmediğini görmek için denetim yapılmaz. aynı eventName ve listener birleşimini geçen birden çok çağrı, listener birden çok kez eklenmesine ve çağrılmasını sağlar.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
Varsayılan olarak, olay dinleyicileri eklendikleri sırayla çağrılır.
emitter.prependListener() yöntemi, olay dinleyicisini dinleyici dizisinin başına eklemek için alternatif olarak kullanılabilir.
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
Parametreler
- eventName
-
string | symbol
Olayın adı.
- listener
-
(args: any[]) => void
Geri çağırma işlevi
Döndürülenler
EventEmitter.on Devralındı
once<E>(string | symbol, (args: any[]) => void)
adlı olay için tek seferlik bir listenereventName işlevi ekler.
eventName bir sonraki tetiklendiğinde, bu dinleyici kaldırılır ve çağrılır.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
Varsayılan olarak, olay dinleyicileri eklendikleri sırayla çağrılır.
emitter.prependOnceListener() yöntemi, olay dinleyicisini dinleyici dizisinin başına eklemek için alternatif olarak kullanılabilir.
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
Parametreler
- eventName
-
string | symbol
Olayın adı.
- listener
-
(args: any[]) => void
Geri çağırma işlevi
Döndürülenler
EventEmitter.once Devralındı
prependListener<E>(string | symbol, (args: any[]) => void)
listener eklenip eklenmediğini görmek için denetim yapılmaz. aynı eventName ve listener birleşimini geçen birden çok çağrı, listener birden çok kez eklenmesine ve çağrılmasını sağlar.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
function prependListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
Parametreler
- eventName
-
string | symbol
Olayın adı.
- listener
-
(args: any[]) => void
Geri çağırma işlevi
Döndürülenler
EventEmitter.prependListener Devralındı
prependOnceListener<E>(string | symbol, (args: any[]) => void)
dinleyiciler dizisinin başlayan eventName bir sonraki tetiklendiğinde, bu dinleyici kaldırılır ve sonra çağrılır.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
function prependOnceListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
Parametreler
- eventName
-
string | symbol
Olayın adı.
- listener
-
(args: any[]) => void
Geri çağırma işlevi
Döndürülenler
EventEmitter.prependOnceListener'dan Devralınan
rawListeners<E>(string | symbol)
tüm sarmalayıcılar (eventNametarafından oluşturulanlar gibi) dahil olmak üzere .once()adlı olay için dinleyici dizisinin bir kopyasını döndürür.
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[]
Parametreler
- eventName
-
string | symbol
Döndürülenler
(args: any[]) => void[]
EventEmitter.rawListeners Devralındı
removeAllListeners<E>(string | symbol)
Tüm dinleyicileri veya belirtilen eventNameolanları kaldırır.
Özellikle EventEmitter örneği başka bir bileşen veya modül (örneğin yuvalar veya dosya akışları) tarafından oluşturulduğunda kodun başka bir yerine eklenen dinleyicileri kaldırmak kötü bir uygulamadır.
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
function removeAllListeners<E>(eventName?: string | symbol): Twin
Parametreler
- eventName
-
string | symbol
Döndürülenler
EventEmitter.removeAllListeners Devralındı
removeListener<E>(string | symbol, (args: any[]) => void)
listeneradlı olay için dinleyici dizisinden belirtilen eventName kaldırır.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener() dinleyici dizisinden en fazla bir dinleyici örneğini kaldırır. Belirtilen eventNameiçin dinleyici dizisine birden çok kez tek bir dinleyici eklendiyse, her örneği kaldırmak için removeListener() birden çok kez çağrılmalıdır.
Bir olay yayımlandıktan sonra, yayma sırasında ona eklenen tüm dinleyiciler sırayla çağrılır. Bu, removeListener() herhangi bir removeAllListeners() yayınlandıktan sonra ve son dinleyici uygulamayı bitirmeden önce devam eden döngüden kaldırılmayacağı emit() anlamına gelir. Sonraki olaylar beklendiği gibi davranır.
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
Dinleyiciler dahili bir diziyle yönetildiği için, bunu çağırmak, dinleyici çıkarıldıktan sonra kayıtlı herhangi bir dinleyicinin konum indekslerini değiştirir. Bu, dinleyicilerin çağrılma sırasını etkilemez, ancak emitter.listeners() yöntemi tarafından döndürülen dinleyici dizisi kopyalarının yeniden oluşturulması gerektiği anlamına gelir.
Tek bir işlev tek bir olay için birden çok kez işleyici olarak eklendiğinde (aşağıdaki örnekte olduğu gibi), removeListener() en son eklenen örneği kaldırır. Örnekte once('ping') dinleyicisi kaldırılır:
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');
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
function removeListener<E>(eventName: string | symbol, listener: (args: any[]) => void): Twin
Parametreler
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Döndürülenler
EventEmitter.removeListener Devralındı
setMaxListeners(number)
Varsayılan olarak, belirli bir olay için EventEmitter'den fazla dinleyici eklenirse 10bir uyarı yazdırır. Bu, bellek sızıntılarını bulmaya yardımcı olan kullanışlı bir varsayılan değerdir.
emitter.setMaxListeners() yöntemi, sınırın bu belirli EventEmitter örneği için değiştirilmesini sağlar. Değer, sınırsız sayıda dinleyiciyi göstermek için Infinity (veya 0) olarak ayarlanabilir.
Çağrıların zincirlenebilmesi için EventEmitterbir başvuru döndürür.
function setMaxListeners(n: number): Twin
Parametreler
- n
-
number
Döndürülenler
EventEmitter.setMaxListeners Devralındı
[captureRejectionSymbol](Error, string | symbol, any[])
Yöntem, Symbol.for('nodejs.rejection') bir olay yayıldığında söz reddedilmesi durumunda çağrılır ve captureRejections yayıcıda etkinleştirilir.
events.captureRejectionSymbol
Symbol.for('nodejs.rejection')Yerine kullanılmak mümkündür.
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[])
Parametreler
- error
-
Error
- event
-
string | symbol
- args
-
any[]
Miras Olarak EventEmitter.__@captureRejectionSymbol@129