共用方式為


DeviceTransport interface

Extends

EventEmitter

方法

abandon(Message, (err?: Error, results?: MessageAbandoned) => void)
complete(Message, (err?: Error, result?: MessageCompleted) => void)
connect((err?: Error, result?: Connected) => void)
disableC2D((err?: Error) => void)
disableInputMessages((err?: Error) => void)
disableMethods((err?: Error) => void)
disableTwinDesiredPropertiesUpdates((err?: Error) => void)
disconnect((err?: Error, result?: Disconnected) => void)
enableC2D((err?: Error) => void)
enableInputMessages((err?: Error) => void)
enableMethods((err?: Error) => void)
enableTwinDesiredPropertiesUpdates((err?: Error) => void)
getTwin((err?: Error, twin?: TwinProperties) => void)
on("connected", () => void)
on("disconnect", (err?: Error) => void)
on("error", (err: Error) => void)
on("inputMessage", (inputName: string, msg: Message) => void)
on("message", (msg: Message) => void)
on("twinDesiredPropertiesUpdate", (desiredProps: any) => void)
onDeviceMethod(string, (request: MethodMessage, response: DeviceMethodResponse) => void)
reject(Message, (err?: Error, results?: MessageRejected) => void)
sendEvent(Message, (err?: Error, result?: MessageEnqueued) => void)
sendEventBatch(Message[], (err?: Error, result?: MessageEnqueued) => void)
sendMethodResponse(DeviceMethodResponse, (err?: Error, result?: any) => void)
sendOutputEvent(string, Message, (err?: Error, result?: MessageEnqueued) => void)
sendOutputEventBatch(string, Message[], (err?: Error, result?: MessageEnqueued) => void)
setOptions(DeviceClientOptions, (err?: Error, result?: TransportConfigured) => void)
updateSharedAccessSignature(string, (err?: Error, result?: SharedAccessSignatureUpdated) => void)
updateTwinReportedProperties(any, (err?: Error) => void)

繼承的方法

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

emitter.on(eventName, listener)別名。

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

傳回數位,列出發出器已註冊接聽程式的事件。 陣列中的值為字串或 Symbols。

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

傳回 EventEmitter 所設定之 emitter.setMaxListeners(n) 目前的最大接聽程式值,或預設為 defaultMaxListeners

listenerCount<K>(string | symbol, Function)

傳回接聽名為 eventName事件之接聽程式的數目。 如果提供 listener,它會傳回接聽程式在事件接聽程式清單中找到的次數。

listeners<K>(string | symbol)

針對名為 eventName的事件,傳回接聽程式陣列的複本。

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
off<K>(string | symbol, (args: any[]) => void)

emitter.removeListener()別名。

once<K>(string | symbol, (args: any[]) => void)

為名為 的事件新增 listenereventName 函式。 下次觸發 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
prependListener<K>(string | symbol, (args: any[]) => void)

針對名為 listener的事件,將 函式加入至接聽程式陣列的 eventName。 不會進行檢查,以查看是否已新增 listener。 多個呼叫傳遞相同組合的 eventNamelistener 會導致新增和呼叫 listener 多次。

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

傳回 EventEmitter的參考,以便可以鏈結呼叫。

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

針對名為 的事件,將 一次性 函式新增至接聽程式數位 開始的 。 下次觸發 eventName 時,會移除此接聽程式,然後叫用。

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

傳回 EventEmitter的參考,以便可以鏈結呼叫。

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

拿掉所有接聽程式,或指定之 eventName的接聽程式。

拿掉程式代碼中其他位置新增的接聽程式是錯誤的作法,特別是當 EventEmitter 實例是由某些其他元件或模組建立時(例如套接字或檔案數據流)。

傳回 EventEmitter的參考,以便可以鏈結呼叫。

removeListener<K>(string | symbol, (args: any[]) => void)

從名為 listener的事件接聽程式數位中移除指定的 eventName

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() 最多會從接聽程式數位中移除一個接聽程序的實例。 如果指定的 eventName已將任何單一接聽程式多次新增至接聽程式陣列,則必須呼叫 removeListener() 多次,才能移除每個實例。

一旦發出事件,就會依序呼叫發出時附加至它的所有接聽程式。 這表示在 發出和 之後, 呼叫 ,最後一個接聽程式完成執行 之前,將不會從進行中的 中移除它們。 後續事件的行為會如預期般運作。

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的參考,以便可以鏈結呼叫。

setMaxListeners(number)

根據預設,如果特定事件新增了超過 EventEmitter 接聽程式,10會列印警告。 這是有助於尋找記憶體流失的實用預設值。 emitter.setMaxListeners() 方法允許修改這個特定 EventEmitter 實例的限制。 值可以設定為 Infinity (或 0),表示不限數目的接聽程式。

傳回 EventEmitter的參考,以便可以鏈結呼叫。

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

方法詳細資料

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)

參數

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)

參數

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

傳回數位,列出發出器已註冊接聽程式的事件。 陣列中的值為字串或 Symbols。

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

傳回 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)

為名為 的事件新增 listenereventName 函式。 下次觸發 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。 多個呼叫傳遞相同組合的 eventNamelistener 會導致新增和呼叫 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 時,會移除此接聽程式,然後叫用。

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)

從名為 listener的事件接聽程式數位中移除指定的 eventName

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() 最多會從接聽程式數位中移除一個接聽程序的實例。 如果指定的 eventName已將任何單一接聽程式多次新增至接聽程式陣列,則必須呼叫 removeListener() 多次,才能移除每個實例。

一旦發出事件,就會依序呼叫發出時附加至它的所有接聽程式。 這表示在 發出和 之後, 呼叫 ,最後一個接聽程式完成執行 之前,將不會從進行中的 中移除它們。 後續事件的行為會如預期般運作。

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@141