DeviceTransport interface
- Extends
-
EventEmitter
方法
繼承的方法
add |
的 |
emit<K>(string | symbol, Any |
以同步方式呼叫針對名為 如果事件具有接聽程式,則傳
|
event |
傳回數位,其中列出發出器已註冊接聽程式的事件。 陣列中的值是字串或
|
get |
傳回 的目前 max 接聽程式值 |
listener |
傳回接聽名為 之事件的接聽程式 |
listeners<K>(string | symbol) | 傳回名為
|
off<K>(string | symbol, (args: any[]) => void) | 的 |
once<K>(string | symbol, (args: any[]) => void) | 為名為
傳回 的 根據預設,事件接聽程式會依新增的順序叫用。 方法
|
prepend |
將函
傳回 的 |
prepend |
將名為
傳回 的 |
raw |
傳回名為
|
remove |
拿掉所有接聽程式,或指定 拿掉程式代碼中其他位置新增的接聽程式是錯誤的作法,特別是 傳回 的 |
remove |
從名為
一旦發出事件,在發出時附加至它的所有接聽程式都會依序呼叫。 這表示在發出 之後和最後一個接聽程序執行之前的任何
因為接聽程式是使用內部數位來管理,所以呼叫 這個會變更移除接聽程式 之後 所註冊之任何接聽程式的位置索引。 這不會影響呼叫接聽程式的順序,但它表示必須重新建立方法所 當單一函式新增為單一事件的處理程式多次 (時,如下列範例) ,
傳回 的 |
set |
根據預設 傳回 的 |
[capture |
方法詳細資料
abandon(Message, (err?: Error, results?: MessageAbandoned) => void)
function abandon(message: Message, done: (err?: Error, results?: MessageAbandoned) => void)
參數
- message
- Message
- done
-
(err?: Error, results?: MessageAbandoned) => void
complete(Message, (err?: Error, result?: MessageCompleted) => void)
function complete(message: Message, done: (err?: Error, result?: MessageCompleted) => void)
參數
- message
- Message
- done
-
(err?: Error, result?: MessageCompleted) => void
connect((err?: Error, result?: Connected) => void)
function connect(done: (err?: Error, result?: Connected) => void)
參數
- done
-
(err?: Error, result?: Connected) => void
disableC2D((err?: Error) => void)
function disableC2D(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
disableInputMessages((err?: Error) => void)
function disableInputMessages(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
disableMethods((err?: Error) => void)
function disableMethods(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
disableTwinDesiredPropertiesUpdates((err?: Error) => void)
function disableTwinDesiredPropertiesUpdates(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
disconnect((err?: Error, result?: Disconnected) => void)
function disconnect(done: (err?: Error, result?: Disconnected) => void)
參數
- done
-
(err?: Error, result?: Disconnected) => void
enableC2D((err?: Error) => void)
function enableC2D(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
enableInputMessages((err?: Error) => void)
function enableInputMessages(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
enableMethods((err?: Error) => void)
function enableMethods(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
enableTwinDesiredPropertiesUpdates((err?: Error) => void)
function enableTwinDesiredPropertiesUpdates(callback: (err?: Error) => void)
參數
- callback
-
(err?: Error) => void
getTwin((err?: Error, twin?: TwinProperties) => void)
function getTwin(callback: (err?: Error, twin?: TwinProperties) => void)
參數
- callback
-
(err?: Error, twin?: TwinProperties) => void
on("connected", () => void)
function on(type: "connected", func: () => void): DeviceTransport
參數
- type
-
"connected"
- func
-
() => void
傳回
on("disconnect", (err?: Error) => void)
function on(type: "disconnect", func: (err?: Error) => void): DeviceTransport
參數
- type
-
"disconnect"
- func
-
(err?: Error) => void
傳回
on("error", (err: Error) => void)
function on(type: "error", func: (err: Error) => void): DeviceTransport
參數
- type
-
"error"
- func
-
(err: Error) => void
傳回
on("inputMessage", (inputName: string, msg: Message) => void)
function on(type: "inputMessage", func: (inputName: string, msg: Message) => void): DeviceTransport
參數
- type
-
"inputMessage"
- func
-
(inputName: string, msg: Message) => void
傳回
on("message", (msg: Message) => void)
function on(type: "message", func: (msg: Message) => void): DeviceTransport
參數
- type
-
"message"
- func
-
(msg: Message) => void
傳回
on("twinDesiredPropertiesUpdate", (desiredProps: any) => void)
function on(type: "twinDesiredPropertiesUpdate", func: (desiredProps: any) => void): DeviceTransport
參數
- type
-
"twinDesiredPropertiesUpdate"
- func
-
(desiredProps: any) => void
傳回
onDeviceMethod(string, (request: MethodMessage, response: DeviceMethodResponse) => void)
function onDeviceMethod(methodName: string, methodCallback: (request: MethodMessage, response: DeviceMethodResponse) => void)
參數
- methodName
-
string
- methodCallback
-
(request: MethodMessage, response: DeviceMethodResponse) => void
reject(Message, (err?: Error, results?: MessageRejected) => void)
function reject(message: Message, done: (err?: Error, results?: MessageRejected) => void)
參數
- message
- Message
- done
-
(err?: Error, results?: MessageRejected) => void
sendEvent(Message, (err?: Error, result?: MessageEnqueued) => void)
function sendEvent(message: Message, done: (err?: Error, result?: MessageEnqueued) => void)
參數
- message
- Message
- done
-
(err?: Error, result?: MessageEnqueued) => void
sendEventBatch(Message[], (err?: Error, result?: MessageEnqueued) => void)
function sendEventBatch(messages: Message[], done: (err?: Error, result?: MessageEnqueued) => void)
參數
- messages
-
Message[]
- done
-
(err?: Error, result?: MessageEnqueued) => void
sendMethodResponse(DeviceMethodResponse, (err?: Error, result?: any) => void)
function sendMethodResponse(response: DeviceMethodResponse, done?: (err?: Error, result?: any) => void)
參數
- response
- DeviceMethodResponse
- done
-
(err?: Error, result?: any) => void
sendOutputEvent(string, Message, (err?: Error, result?: MessageEnqueued) => void)
function sendOutputEvent(outputName: string, message: Message, done: (err?: Error, result?: MessageEnqueued) => void)
參數
- outputName
-
string
- message
- Message
- done
-
(err?: Error, result?: MessageEnqueued) => void
sendOutputEventBatch(string, Message[], (err?: Error, result?: MessageEnqueued) => void)
function sendOutputEventBatch(outputName: string, messages: Message[], done: (err?: Error, result?: MessageEnqueued) => void)
參數
- outputName
-
string
- messages
-
Message[]
- done
-
(err?: Error, result?: MessageEnqueued) => void
setOptions(DeviceClientOptions, (err?: Error, result?: TransportConfigured) => void)
function setOptions(options: DeviceClientOptions, done: (err?: Error, result?: TransportConfigured) => void)
參數
- options
- DeviceClientOptions
- done
-
(err?: Error, result?: TransportConfigured) => void
updateSharedAccessSignature(string, (err?: Error, result?: SharedAccessSignatureUpdated) => void)
function updateSharedAccessSignature(sharedAccessSignature: string, done: (err?: Error, result?: SharedAccessSignatureUpdated) => void)
參數
- sharedAccessSignature
-
string
- done
-
(err?: Error, result?: SharedAccessSignatureUpdated) => void
updateTwinReportedProperties(any, (err?: Error) => void)
function updateTwinReportedProperties(patch: any, callback: (err?: Error) => void)
參數
- patch
-
any
- callback
-
(err?: Error) => void
繼承的方法的詳細資料
addListener<K>(string | symbol, (args: any[]) => void)
的 emitter.on(eventName, listener)
別名。
function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport
參數
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
傳回
繼承自 EventEmitter.addListener
emit<K>(string | symbol, AnyRest)
以同步方式呼叫針對名為 eventName
之事件註冊的每個接聽程式,依其註冊的順序,將提供的自變數傳遞給每個接聽程式。
如果事件具有接聽程式,則傳 true
回 , 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<K>(eventName: string | symbol, args: AnyRest): boolean
參數
- eventName
-
string | symbol
- args
-
AnyRest
傳回
boolean
繼承自 EventEmitter.emit
eventNames()
傳回數位,其中列出發出器已註冊接聽程式的事件。 陣列中的值是字串或 Symbol
。
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)[]
傳回
(string | symbol)[]
繼承自 EventEmitter.eventNames
getMaxListeners()
傳回 的目前 max 接聽程式值 EventEmitter
,設定為 emitter.setMaxListeners(n)
或預設為 defaultMaxListeners。
function getMaxListeners(): number
傳回
number
繼承自 EventEmitter.getMaxListeners
listenerCount<K>(string | symbol, Function)
傳回接聽名為 之事件的接聽程式 eventName
數目。
如果 listener
提供 ,它會傳回接聽程式在事件的接聽程式清單中找到的次數。
function listenerCount<K>(eventName: string | symbol, listener?: Function): number
參數
- eventName
-
string | symbol
正在接聽的事件名稱
- listener
-
Function
事件處理程式函式
傳回
number
繼承自 EventEmitter.listenerCount
listeners<K>(string | symbol)
傳回名為 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[]
參數
- eventName
-
string | symbol
傳回
Function[]
繼承自 EventEmitter.listeners
off<K>(string | symbol, (args: any[]) => void)
的 emitter.removeListener()
別名。
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport
參數
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
傳回
繼承自 EventEmitter.off
once<K>(string | symbol, (args: any[]) => void)
為名為eventName
的事件加入一次性listener
函式。 下次觸發時 eventName
,會移除此接聽程式,然後叫用。
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
傳回 的 EventEmitter
參考,以便鏈結呼叫。
根據預設,事件接聽程式會依新增的順序叫用。 方法 emitter.prependOnceListener()
可作為將事件接聽程式新增至接聽程式陣列開頭的替代方法。
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): DeviceTransport
參數
- eventName
-
string | symbol
事件的名稱。
- listener
-
(args: any[]) => void
回調函式
傳回
繼承自 EventEmitter.once
prependListener<K>(string | symbol, (args: any[]) => void)
將函listener
式加入至名為 eventName
之事件的接聽程式數位開頭。 不會進行任何檢查,以檢視 是否已 listener
新增 。 多個呼叫會傳遞和 listener
的相同組合eventName
,將會導致listener
新增和呼叫多次。
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
傳回 的 EventEmitter
參考,以便鏈結呼叫。
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport
參數
- eventName
-
string | symbol
事件的名稱。
- listener
-
(args: any[]) => void
回調函式
傳回
繼承自 EventEmitter.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
將名為 eventName
之事件的一次性listener
函式新增至接聽程式陣列的開頭。 下次觸發時 eventName
,會移除此接聽程式,然後叫用。
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
傳回 的 EventEmitter
參考,以便鏈結呼叫。
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport
參數
- eventName
-
string | symbol
事件的名稱。
- listener
-
(args: any[]) => void
回調函式
傳回
繼承自 EventEmitter.prependOnceListener
rawListeners<K>(string | symbol)
傳回名為 eventName
之事件的接聽程式數位複本,包括任何包裝函式 (,例如) 所建立的 .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[]
參數
- eventName
-
string | symbol
傳回
Function[]
繼承自 EventEmitter.rawListeners
removeAllListeners(string | symbol)
拿掉所有接聽程式,或指定 eventName
之的接聽程式。
拿掉程式代碼中其他位置新增的接聽程式是錯誤的作法,特別是 EventEmitter
當實例是由某些其他元件或模組所建立時, (例如套接字或檔案數據流) 。
傳回 的 EventEmitter
參考,以便鏈結呼叫。
function removeAllListeners(eventName?: string | symbol): DeviceTransport
參數
- eventName
-
string | symbol
傳回
繼承自 EventEmitter.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
從名為 eventName
之事件的接聽程式陣列中移除指定的 listener
。
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener()
最多會從接聽程式陣列中移除一個接聽程序的實例。 如果任何單一接聽程式已針對指定的 eventName
新增多次至接聽程式數位, removeListener()
則必須多次呼叫 ,才能移除每個實例。
一旦發出事件,在發出時附加至它的所有接聽程式都會依序呼叫。 這表示在發出 之後和最後一個接聽程序執行之前的任何 removeListener()
或 removeAllListeners()
呼叫都不會從emit()
進行中移除它們。 後續事件的行為會如預期般運作。
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
因為接聽程式是使用內部數位來管理,所以呼叫 這個會變更移除接聽程式 之後 所註冊之任何接聽程式的位置索引。 這不會影響呼叫接聽程式的順序,但它表示必須重新建立方法所 emitter.listeners()
傳回的任何接聽程式陣列複本。
當單一函式新增為單一事件的處理程式多次 (時,如下列範例) , removeListener()
將會移除最近新增的實例。 在範例中,會 once('ping')
移除接聽程式:
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');
傳回 的 EventEmitter
參考,以便鏈結呼叫。
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): DeviceTransport
參數
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
傳回
繼承自 EventEmitter.removeListener
setMaxListeners(number)
根據預設 EventEmitter
,如果針對特定事件新增超過 10
接聽程式,則會列印警告。 這是有助於尋找記憶體流失的實用預設值。 方法 emitter.setMaxListeners()
允許修改這個特定 EventEmitter
實例的限制。 值可以設定為 Infinity
(或 0
) ,以表示不限數目的接聽程式。
傳回 的 EventEmitter
參考,以便鏈結呼叫。
function setMaxListeners(n: number): DeviceTransport
參數
- n
-
number
傳回
繼承自 EventEmitter.setMaxListeners
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)
function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)
參數
- error
-
Error
- event
-
string | symbol
- args
-
AnyRest
繼承自 EventEmitter.__@captureRejectionSymbol@138