Share via


ServiceReceiver interface

Extends

Receiver

メソッド

abandon(Message, Callback<MessageAbandoned>)
complete(Message, Callback<MessageCompleted>)
reject(Message, Callback<MessageRejected>)

継承されたメソッド

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

によってemitter.setMaxListeners(n)設定されているか、既定値が に設定されている のEventEmitter現在の最大リスナー値を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()エイリアス。

on("errorReceived", (err: Error) => void)
on("message", (msg: Message) => void)
on(string, Function)
once<K>(string | symbol, (args: any[]) => void)

という名前eventNameのイベントの 1 回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
prependListener<K>(string | symbol, (args: any[]) => void)

という名前eventNamelistenerイベントのリスナー配列の先頭に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

という名前eventNameのイベントの 1 回listener限りの関数をリスナー配列の先頭に追加します。 次回 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)

という名前eventNameのイベントのリスナー配列から指定された を削除しますlistener

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

removeListener() は、リスナー配列からリスナーのインスタンスを最大で 1 つ削除します。 指定した eventNameのリスナー配列に 1 つのリスナーが複数回追加されている場合は、 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() 1 つのイベントに対して 1 つの関数がハンドラーとして複数回追加されると、最後に追加されたインスタンスが削除されます。 この例では、リスナーは 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 のインスタンスの制限を変更できます。 値を (または0) にInfinity設定して、リスナーの数を無制限に示すことができます。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

メソッドの詳細

abandon(Message, Callback<MessageAbandoned>)

function abandon(message: Message, done?: Callback<MessageAbandoned>)

パラメーター

message

Message

done

Callback<MessageAbandoned>

complete(Message, Callback<MessageCompleted>)

function complete(message: Message, done?: Callback<MessageCompleted>)

パラメーター

message

Message

done

Callback<MessageCompleted>

reject(Message, Callback<MessageRejected>)

function reject(message: Message, done?: Callback<MessageRejected>)

パラメーター

message

Message

done

Callback<MessageRejected>

継承済みメソッドの詳細

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

emitter.on(eventName, listener)エイリアス。

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

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 Receiver.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

継承元 Receiver.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)[]

継承元 Receiver.eventNames

getMaxListeners()

によってemitter.setMaxListeners(n)設定されているか、既定値が に設定されている のEventEmitter現在の最大リスナー値をdefaultMaxListeners返します。

function getMaxListeners(): number

戻り値

number

継承元 Receiver.getMaxListeners

listenerCount<K>(string | symbol, Function)

という名前 eventNameのイベントをリッスンしているリスナーの数を返します。 が指定されている場合 listener 、イベントのリスナーの一覧でリスナーが見つかった回数が返されます。

function listenerCount<K>(eventName: string | symbol, listener?: Function): number

パラメーター

eventName

string | symbol

リッスンするイベントの名前

listener

Function

イベント ハンドラー関数

戻り値

number

継承元 Receiver.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[]

継承元 Receiver.listeners

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

emitter.removeListener()エイリアス。

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

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 Receiver.off

on("errorReceived", (err: Error) => void)

function on(type: "errorReceived", func: (err: Error) => void): ServiceReceiver

パラメーター

type

"errorReceived"

func

(err: Error) => void

戻り値

継承元 Receiver.on

on("message", (msg: Message) => void)

function on(type: "message", func: (msg: Message) => void): ServiceReceiver

パラメーター

type

"message"

func

(msg: Message) => void

戻り値

継承元 Receiver.on

on(string, Function)

function on(type: string, func: Function): ServiceReceiver

パラメーター

type

string

func

Function

戻り値

継承元 Receiver.on

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

という名前eventNameのイベントの 1 回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): ServiceReceiver

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 Receiver.once

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

という名前eventNamelistenerイベントのリスナー配列の先頭に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): ServiceReceiver

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 Receiver.prependListener

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

という名前eventNameのイベントの 1 回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): ServiceReceiver

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 Receiver.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[]

継承元 Receiver.rawListeners

removeAllListeners(string | symbol)

すべてのリスナー、または指定した のリスナーを削除します eventName

特に、インスタンスが他のコンポーネントまたはモジュール (ソケットやファイル ストリームなど) によって作成された場合 EventEmitter に、コード内の他の場所に追加されたリスナーを削除するのは不適切な方法です。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

function removeAllListeners(eventName?: string | symbol): ServiceReceiver

パラメーター

eventName

string | symbol

戻り値

継承元 Receiver.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() は、リスナー配列からリスナーのインスタンスを最大で 1 つ削除します。 指定した eventNameのリスナー配列に 1 つのリスナーが複数回追加されている場合は、 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() 1 つのイベントに対して 1 つの関数がハンドラーとして複数回追加されると、最後に追加されたインスタンスが削除されます。 この例では、リスナーは 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): ServiceReceiver

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 Receiver.removeListener

setMaxListeners(number)

既定 EventEmitterでは、 は、特定のイベントに対して複数 10 のリスナーが追加された場合に警告を出力します。 これは、メモリ リークを見つけるのに役立つ便利な既定値です。 メソッドを emitter.setMaxListeners() 使用すると、この特定 EventEmitter のインスタンスの制限を変更できます。 値を (または0) にInfinity設定して、リスナーの数を無制限に示すことができます。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

function setMaxListeners(n: number): ServiceReceiver

パラメーター

n

number

戻り値

継承元 Receiver.setMaxListeners

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

function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)

パラメーター

error

Error

event

string | symbol

args

AnyRest

継承元 Receiver.__@captureRejectionSymbol@115