Receiver interface

Extends

EventEmitter

الأساليب

on("errorReceived", (err: Error) => void)
on("message", (msg: Message) => void)
on(string, Function)

الأساليب المتوارثة

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) أو الإعدادات الافتراضية إلى <xref: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)

يضيف دالة لمرةlistener واحدة للحدث المسمى eventName. في المرة 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 قد تمت إضافته بالفعل. ستؤدي المكالمات المتعددة التي تمرر نفس المجموعة من eventName و listener إلى listener إضافة واستدعاء عدة مرات.

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

إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.

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

يضيف دالة لمرةlistener واحدة للحدث المسمى eventName إلى بداية صفيف المستمعين. في المرة 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() فيجب استدعاء عدة مرات لإزالة كل مثيل.

بمجرد إصدار حدث، يتم استدعاء جميع المستمعين المرفقين به في وقت الانبعاث بالترتيب. وهذا يعني أن أي 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، بحيث يمكن ربط الاستدعاءات.

setMaxListeners(number)

بشكل افتراضي EventEmitter، سيطبع s تحذيرا إذا تمت إضافة أكثر من 10 وحدات الاستماع لحدث معين. هذا افتراضي مفيد يساعد على العثور على تسربات الذاكرة. emitter.setMaxListeners() يسمح الأسلوب بتعديل الحد لهذا المثيل المحددEventEmitter. يمكن تعيين القيمة إلى Infinity (أو 0) للإشارة إلى عدد غير محدود من المستمعين.

إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.

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

تفاصيل الأسلوب

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

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

المعلمات

type

"errorReceived"

func

(err: Error) => void

المرتجعات

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

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

المعلمات

type

"message"

func

(msg: Message) => void

المرتجعات

on(string, Function)

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

المعلمات

type

string

func

Function

المرتجعات

تفاصيل الأساليب المتوارثة

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

الاسم المستعار ل emitter.on(eventName, listener).

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

المعلمات

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) أو الإعدادات الافتراضية إلى <xref: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): Receiver

المعلمات

eventName

string | symbol

listener

(args: any[]) => void

المرتجعات

موروث من EventEmitter.off

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

يضيف دالة لمرةlistener واحدة للحدث المسمى eventName. في المرة 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): Receiver

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

دالة رد الاتصال

المرتجعات

موروث من EventEmitter.once

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

يضيف الدالة listener إلى بداية صفيف المستمعين للحدث المسمى eventName. لا يتم إجراء أي عمليات فحص لمعرفة ما إذا كان listener قد تمت إضافته بالفعل. ستؤدي المكالمات المتعددة التي تمرر نفس المجموعة من eventName و listener إلى listener إضافة واستدعاء عدة مرات.

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

إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.

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

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

دالة رد الاتصال

المرتجعات

موروث من EventEmitter.prependListener

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

يضيف دالة لمرةlistener واحدة للحدث المسمى eventName إلى بداية صفيف المستمعين. في المرة eventName التالية التي يتم فيها تشغيل، تتم إزالة وحدة الاستماع هذه، ثم استدعاؤها.

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

إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.

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

المعلمات

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): Receiver

المعلمات

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() فيجب استدعاء عدة مرات لإزالة كل مثيل.

بمجرد إصدار حدث، يتم استدعاء جميع المستمعين المرفقين به في وقت الانبعاث بالترتيب. وهذا يعني أن أي 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): Receiver

المعلمات

eventName

string | symbol

listener

(args: any[]) => void

المرتجعات

موروث من EventEmitter.removeListener

setMaxListeners(number)

بشكل افتراضي EventEmitter، سيطبع s تحذيرا إذا تمت إضافة أكثر من 10 وحدات الاستماع لحدث معين. هذا افتراضي مفيد يساعد على العثور على تسربات الذاكرة. emitter.setMaxListeners() يسمح الأسلوب بتعديل الحد لهذا المثيل المحددEventEmitter. يمكن تعيين القيمة إلى Infinity (أو 0) للإشارة إلى عدد غير محدود من المستمعين.

إرجاع مرجع إلى EventEmitter، بحيث يمكن ربط الاستدعاءات.

function setMaxListeners(n: number): Receiver

المعلمات

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