مشاركة عبر


ModuleClient class

يستخدم عميل جهاز IoT Hub لتوصيل جهاز بمركز Azure IoT.

يجب على مستخدمي SDK استدعاء أحد أساليب المصنع، منConnectionString أو منSharedAccessSignature لإنشاء عميل جهاز IoT Hub.

يمتد

InternalClient

الأساليب

close()
close(Callback<Disconnected>)

إغلاق اتصال النقل وإتلاف موارد العميل.

ملاحظة: بعد استدعاء هذا الأسلوب، لا يمكن إعادة استخدام كائن ModuleClient.

fromAuthenticationProvider(AuthenticationProvider, any)

إنشاء عميل وحدة IoT Hub من أسلوب المصادقة المحدد واستخدام نوع النقل المحدد.

fromConnectionString(string, any)

إنشاء عميل جهاز IoT Hub من سلسلة الاتصال المحددة باستخدام نوع النقل المحدد.

fromEnvironment(any)
fromEnvironment(any, Callback<ModuleClient>)

إنشاء عميل وحدة IoT Hub باستخدام معلومات التكوين من البيئة.

إذا كان هناك متغير بيئة يسمى EdgeHubConnectionString أو IotHubConnectionString موجودا، استخدام هذه القيمة والسلوك مطابق لاستدعاء fromConnectionString تمرير ذلك. إذا لم تكن متغيرات البيئة هذه موجودة، فيجب تعريف المتغيرات التالية:

- IOTEDGE_WORKLOADURI          URI for iotedged's workload API
- IOTEDGE_DEVICEID             Device identifier
- IOTEDGE_MODULEID             Module identifier
- IOTEDGE_MODULEGENERATIONID   Module generation identifier
- IOTEDGE_IOTHUBHOSTNAME       IoT Hub host name
- IOTEDGE_AUTHSCHEME           Authentication scheme to use; must be "sasToken"
fromSharedAccessSignature(string, any)

إنشاء عميل وحدة IoT Hub من توقيع الوصول المشترك المحدد باستخدام نوع النقل المحدد.

invokeMethod(string, MethodParams)
invokeMethod(string, MethodParams, Callback<MethodResult>)

استدعاء أسلوب على جهاز انتقال البيانات من الخادم أو على وحدة نمطية أخرى على نفس جهاز IoTEdge. يرجى ملاحظة أن هذه الميزة تعمل فقط عند تشغيل الوحدة النمطية كجزء من جهاز IoTEdge.

invokeMethod(string, string, MethodParams)
invokeMethod(string, string, MethodParams, Callback<MethodResult>)
onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)

تسجيل رد اتصال لأسلوب يسمى methodName.

sendOutputEvent(string, Message)
sendOutputEvent(string, Message, Callback<MessageEnqueued>)

إرسال حدث إلى إخراج الوحدة النمطية المحددة

sendOutputEventBatch(string, Message[])
sendOutputEventBatch(string, Message[], Callback<MessageEnqueued>)

إرسال صفيف من الأحداث إلى إخراج الوحدة النمطية المحددة

setOptions(DeviceClientOptions)
setOptions(DeviceClientOptions, Callback<TransportConfigured>)

تمرير الخيارات إلى كائن ModuleClient الذي يمكن استخدامه لتكوين النقل.

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

abandon(Message)
abandon(Message, Callback<MessageAbandoned>)
addListener<E>(string | symbol, (args: any[]) => void)

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

complete(Message)
complete(Message, Callback<MessageCompleted>)
emit<E>(string | symbol, any[])

يستدعي بشكل متزامن كل من المستمعين المسجلين للحدث المسمى 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()

إرجاع صفيف يسرد الأحداث التي قام المرسل بتسجيل المستمعين لها.

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

getTwin()
getTwin(Callback<Twin>)
listenerCount<E>(string | symbol, (args: any[]) => void)

إرجاع عدد المستمعين المستمعين للحدث المسمى eventName. إذا تم توفير listener، فسيرجع عدد المرات التي يتم فيها العثور على وحدة الاستماع في قائمة وحدات الاستماع للحدث.

listeners<E>(string | symbol)

إرجاع نسخة من صفيف المستمعين للحدث المسمى eventName.

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

الاسم المستعار ل emitter.removeListener().

on<E>(string | symbol, (args: any[]) => void)

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

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

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

بشكل افتراضي، يتم استدعاء مستمعي الأحداث بالترتيب الذي تتم إضافتهم به. يمكن استخدام أسلوب emitter.prependListener() كبديل لإضافة مستمع الحدث إلى بداية صفيف المستمعين.

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
once<E>(string | symbol, (args: any[]) => void)

إضافة دالة لمرة واحدة للحدث المسمى . في المرة التالية التي يتم فيها تشغيل 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
open()
open(Callback<Connected>)
prependListener<E>(string | symbol, (args: any[]) => void)

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

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

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

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

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

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

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

rawListeners<E>(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');
reject(Message)
reject(Message, Callback<MessageRejected>)
removeAllListeners<E>(string | symbol)

إزالة كافة وحدات الاستماع، أو تلك الخاصة eventNameالمحددة.

من الممارسات السيئة إزالة المستمعين الذين تمت إضافتهم في مكان آخر في التعليمات البرمجية، خاصة عند إنشاء مثيل EventEmitter بواسطة مكون أو وحدة أخرى (مثل مآخذ التوصيل أو تدفقات الملفات).

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

removeListener<E>(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، بحيث يمكن ربط الاستدعاءات.

sendEvent(Message)
sendEvent(Message, Callback<MessageEnqueued>)
sendEventBatch(Message[])
sendEventBatch(Message[], Callback<MessageEnqueued>)
setMaxListeners(number)

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

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

setRetryPolicy(RetryPolicy)

تعيين نهج إعادة المحاولة المستخدم من قبل العميل على جميع العمليات. الإعداد الافتراضي هو ExponentialBackoffWithJitter.

setTransportOptions(any)
setTransportOptions(any, Callback<TransportConfigured>)
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
[captureRejectionSymbol](Error, string | symbol, any[])

يتم استدعاء هذه Symbol.for('nodejs.rejection') الطريقة في حال حدوث رفض وعد عند إصدار حدث ويتم captureRejections تفعيله على الباعث. من الممكن استخدامه events.captureRejectionSymbol بدلا من Symbol.for('nodejs.rejection').

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.
  }
}

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

close()

function close(): Promise<Disconnected>

المرتجعات

Promise<Disconnected>

close(Callback<Disconnected>)

إغلاق اتصال النقل وإتلاف موارد العميل.

ملاحظة: بعد استدعاء هذا الأسلوب، لا يمكن إعادة استخدام كائن ModuleClient.

function close(closeCallback?: Callback<Disconnected>)

المعلمات

closeCallback

Callback<Disconnected>

دالة اختيارية لاستدعاء بمجرد قطع اتصال النقل وإغلاق العميل.

fromAuthenticationProvider(AuthenticationProvider, any)

إنشاء عميل وحدة IoT Hub من أسلوب المصادقة المحدد واستخدام نوع النقل المحدد.

static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): ModuleClient

المعلمات

authenticationProvider

AuthenticationProvider

الكائن المستخدم للحصول على معلمات المصادقة لمركز IoT.

transportCtor

any

بروتوكول النقل المستخدم للاتصال بمركز IoT.

المرتجعات

fromConnectionString(string, any)

إنشاء عميل جهاز IoT Hub من سلسلة الاتصال المحددة باستخدام نوع النقل المحدد.

static function fromConnectionString(connStr: string, transportCtor: any): ModuleClient

المعلمات

connStr

string

سلسلة اتصال تغلف أذونات "اتصال الجهاز" على مركز IoT.

transportCtor

any

منشئ النقل.

المرتجعات

fromEnvironment(any)

static function fromEnvironment(transportCtor: any): Promise<ModuleClient>

المعلمات

transportCtor

any

المرتجعات

Promise<ModuleClient>

fromEnvironment(any, Callback<ModuleClient>)

إنشاء عميل وحدة IoT Hub باستخدام معلومات التكوين من البيئة.

إذا كان هناك متغير بيئة يسمى EdgeHubConnectionString أو IotHubConnectionString موجودا، استخدام هذه القيمة والسلوك مطابق لاستدعاء fromConnectionString تمرير ذلك. إذا لم تكن متغيرات البيئة هذه موجودة، فيجب تعريف المتغيرات التالية:

- IOTEDGE_WORKLOADURI          URI for iotedged's workload API
- IOTEDGE_DEVICEID             Device identifier
- IOTEDGE_MODULEID             Module identifier
- IOTEDGE_MODULEGENERATIONID   Module generation identifier
- IOTEDGE_IOTHUBHOSTNAME       IoT Hub host name
- IOTEDGE_AUTHSCHEME           Authentication scheme to use; must be "sasToken"
static function fromEnvironment(transportCtor: any, callback?: Callback<ModuleClient>)

المعلمات

transportCtor

any

بروتوكول النقل المستخدم للاتصال بمركز IoT.

callback

Callback<ModuleClient>

رد اتصال اختياري لاستدعاء عند إنشاء ModuleClient أو إذا حدث خطأ أثناء إنشاء العميل.

fromSharedAccessSignature(string, any)

إنشاء عميل وحدة IoT Hub من توقيع الوصول المشترك المحدد باستخدام نوع النقل المحدد.

static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): ModuleClient

المعلمات

sharedAccessSignature

string

توقيع وصول مشترك يغلف أذونات "اتصال الجهاز" على مركز IoT.

transportCtor

any

المرتجعات

invokeMethod(string, MethodParams)

function invokeMethod(deviceId: string, methodParams: MethodParams): Promise<MethodResult>

المعلمات

deviceId

string

methodParams

MethodParams

المرتجعات

Promise<MethodResult>

invokeMethod(string, MethodParams, Callback<MethodResult>)

استدعاء أسلوب على جهاز انتقال البيانات من الخادم أو على وحدة نمطية أخرى على نفس جهاز IoTEdge. يرجى ملاحظة أن هذه الميزة تعمل فقط عند تشغيل الوحدة النمطية كجزء من جهاز IoTEdge.

function invokeMethod(deviceId: string, methodParams: MethodParams, callback?: Callback<MethodResult>)

المعلمات

deviceId

string

معرف الجهاز الهدف

methodParams

MethodParams

معلمات استدعاء الأسلوب المباشر

callback

Callback<MethodResult>

رد الاتصال الاختياري الذي سيتم استدعاؤه إما باستخدام كائن خطأ أو نتيجة استدعاء الأسلوب.

invokeMethod(string, string, MethodParams)

function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams): Promise<MethodResult>

المعلمات

deviceId

string

moduleId

string

methodParams

MethodParams

المرتجعات

Promise<MethodResult>

invokeMethod(string, string, MethodParams, Callback<MethodResult>)

function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams, callback: Callback<MethodResult>)

المعلمات

deviceId

string

moduleId

string

methodParams

MethodParams

callback

Callback<MethodResult>

onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)

تسجيل رد اتصال لأسلوب يسمى methodName.

function onMethod(methodName: string, callback: DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)

المعلمات

methodName

string

اسم الأسلوب الذي سيتم التعامل معه بواسطة رد الاتصال

callback

DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>

الدالة التي يجب استدعاؤها كلما تم تلقي طلب أسلوب للأسلوب المسمى methodName.

sendOutputEvent(string, Message)

function sendOutputEvent(outputName: string, message: Message): Promise<MessageEnqueued>

المعلمات

outputName

string

message
Message

المرتجعات

Promise<MessageEnqueued>

sendOutputEvent(string, Message, Callback<MessageEnqueued>)

إرسال حدث إلى إخراج الوحدة النمطية المحددة

function sendOutputEvent(outputName: string, message: Message, callback?: Callback<MessageEnqueued>)

المعلمات

outputName

string

اسم الإخراج لإرسال الحدث إلى

message
Message

رسالة لإرسالها إلى الإخراج المحدد

callback

Callback<MessageEnqueued>

دالة اختيارية لاستدعاء عند وضع العملية في قائمة الانتظار.

sendOutputEventBatch(string, Message[])

function sendOutputEventBatch(outputName: string, messages: Message[]): Promise<MessageEnqueued>

المعلمات

outputName

string

messages

Message[]

المرتجعات

Promise<MessageEnqueued>

sendOutputEventBatch(string, Message[], Callback<MessageEnqueued>)

إرسال صفيف من الأحداث إلى إخراج الوحدة النمطية المحددة

function sendOutputEventBatch(outputName: string, messages: Message[], callback?: Callback<MessageEnqueued>)

المعلمات

outputName

string

اسم الإخراج لإرسال الأحداث إليه

messages

Message[]

callback

Callback<MessageEnqueued>

دالة لاستدعاء عند وضع العمليات في قائمة الانتظار.

setOptions(DeviceClientOptions)

function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>

المعلمات

المرتجعات

Promise<TransportConfigured>

setOptions(DeviceClientOptions, Callback<TransportConfigured>)

تمرير الخيارات إلى كائن ModuleClient الذي يمكن استخدامه لتكوين النقل.

function setOptions(options: DeviceClientOptions, done?: Callback<TransportConfigured>)

المعلمات

done

Callback<TransportConfigured>

رد اتصال اختياري للاتصال بمجرد تعيين الخيارات.

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

abandon(Message)

function abandon(message: Message): Promise<MessageAbandoned>

المعلمات

message
Message

المرتجعات

Promise<MessageAbandoned>

موروث من InternalClient.abandon

abandon(Message, Callback<MessageAbandoned>)

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

المعلمات

message
Message
abandonCallback

Callback<MessageAbandoned>

موروث من InternalClient.abandon

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

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

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

المعلمات

eventName

string | symbol

listener

(args: any[]) => void

المرتجعات

موروث من InternalClient.addListener

complete(Message)

function complete(message: Message): Promise<MessageCompleted>

المعلمات

message
Message

المرتجعات

Promise<MessageCompleted>

موروث من InternalClient.complete

complete(Message, Callback<MessageCompleted>)

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

المعلمات

message
Message
completeCallback

Callback<MessageCompleted>

موروث من InternalClient.complete

emit<E>(string | symbol, any[])

يستدعي بشكل متزامن كل من المستمعين المسجلين للحدث المسمى 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<E>(eventName: string | symbol, args: any[]): boolean

المعلمات

eventName

string | symbol

args

any[]

المرتجعات

boolean

موروث من InternalClient.emit

eventNames()

إرجاع صفيف يسرد الأحداث التي قام المرسل بتسجيل المستمعين لها.

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)[]

موروث من InternalClient.eventNames

getMaxListeners()

إرجاع قيمة وحدة الإصغاء القصوى الحالية EventEmitter التي تم تعيينها إما بواسطة emitter.setMaxListeners(n) أو الإعدادات الافتراضية إلى events.defaultMaxListeners.

function getMaxListeners(): number

المرتجعات

number

موروثة من InternalClient.getMaxListeners

getTwin()

function getTwin(): Promise<Twin>

المرتجعات

Promise<Twin>

موروث من InternalClient.getTwin

getTwin(Callback<Twin>)

function getTwin(done: Callback<Twin>)

المعلمات

done

Callback<Twin>

موروث من InternalClient.getTwin

listenerCount<E>(string | symbol, (args: any[]) => void)

إرجاع عدد المستمعين المستمعين للحدث المسمى eventName. إذا تم توفير listener، فسيرجع عدد المرات التي يتم فيها العثور على وحدة الاستماع في قائمة وحدات الاستماع للحدث.

function listenerCount<E>(eventName: string | symbol, listener?: (args: any[]) => void): number

المعلمات

eventName

string | symbol

اسم الحدث الذي يتم الاستماع إليه

listener

(args: any[]) => void

دالة معالج الأحداث

المرتجعات

number

موروث من InternalClient.listenerCount

listeners<E>(string | symbol)

إرجاع نسخة من صفيف المستمعين للحدث المسمى eventName.

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[]

المعلمات

eventName

string | symbol

المرتجعات

(args: any[]) => void[]

موروثة من InternalClient.listeners

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

الاسم المستعار ل emitter.removeListener().

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

المعلمات

eventName

string | symbol

listener

(args: any[]) => void

المرتجعات

موروث من InternalClient.off

on<E>(string | symbol, (args: any[]) => void)

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

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

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

بشكل افتراضي، يتم استدعاء مستمعي الأحداث بالترتيب الذي تتم إضافتهم به. يمكن استخدام أسلوب emitter.prependListener() كبديل لإضافة مستمع الحدث إلى بداية صفيف المستمعين.

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

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

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

المرتجعات

موروث من InternalClient.on

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

إضافة دالة لمرة واحدة للحدث المسمى . في المرة التالية التي يتم فيها تشغيل 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<E>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

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

المرتجعات

موروث من InternalClient.once

open()

function open(): Promise<Connected>

المرتجعات

Promise<Connected>

موروث من InternalClient.open

open(Callback<Connected>)

function open(openCallback: Callback<Connected>)

المعلمات

openCallback

Callback<Connected>

موروث من InternalClient.open

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

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

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

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

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

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

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

المرتجعات

موروث من InternalClient.prependListener

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

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

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

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

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

المعلمات

eventName

string | symbol

اسم الحدث.

listener

(args: any[]) => void

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

المرتجعات

موروث من InternalClient.prependOnceListener

rawListeners<E>(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<E>(eventName: string | symbol): (args: any[]) => void[]

المعلمات

eventName

string | symbol

المرتجعات

(args: any[]) => void[]

موروث من InternalClient.rawListeners

reject(Message)

function reject(message: Message): Promise<MessageRejected>

المعلمات

message
Message

المرتجعات

Promise<MessageRejected>

موروث من InternalClient.reject

reject(Message, Callback<MessageRejected>)

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

المعلمات

message
Message
rejectCallback

Callback<MessageRejected>

موروث من InternalClient.reject

removeAllListeners<E>(string | symbol)

إزالة كافة وحدات الاستماع، أو تلك الخاصة eventNameالمحددة.

من الممارسات السيئة إزالة المستمعين الذين تمت إضافتهم في مكان آخر في التعليمات البرمجية، خاصة عند إنشاء مثيل EventEmitter بواسطة مكون أو وحدة أخرى (مثل مآخذ التوصيل أو تدفقات الملفات).

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

function removeAllListeners<E>(eventName?: string | symbol): ModuleClient

المعلمات

eventName

string | symbol

المرتجعات

موروث من InternalClient.removeAllListeners

removeListener<E>(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<E>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient

المعلمات

eventName

string | symbol

listener

(args: any[]) => void

المرتجعات

موروث من InternalClient.removeListener

sendEvent(Message)

function sendEvent(message: Message): Promise<MessageEnqueued>

المعلمات

message
Message

المرتجعات

Promise<MessageEnqueued>

موروث من InternalClient.sendEvent

sendEvent(Message, Callback<MessageEnqueued>)

function sendEvent(message: Message, sendEventCallback: Callback<MessageEnqueued>)

المعلمات

message
Message
sendEventCallback

Callback<MessageEnqueued>

موروث من InternalClient.sendEvent

sendEventBatch(Message[])

function sendEventBatch(messages: Message[]): Promise<MessageEnqueued>

المعلمات

messages

Message[]

المرتجعات

Promise<MessageEnqueued>

موروث من InternalClient.sendEventBatch

sendEventBatch(Message[], Callback<MessageEnqueued>)

function sendEventBatch(messages: Message[], sendEventBatchCallback: Callback<MessageEnqueued>)

المعلمات

messages

Message[]

sendEventBatchCallback

Callback<MessageEnqueued>

موروث من InternalClient.sendEventBatch

setMaxListeners(number)

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

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

function setMaxListeners(n: number): ModuleClient

المعلمات

n

number

المرتجعات

موروث من InternalClient.setMaxListeners

setRetryPolicy(RetryPolicy)

تعيين نهج إعادة المحاولة المستخدم من قبل العميل على جميع العمليات. الإعداد الافتراضي هو ExponentialBackoffWithJitter.

function setRetryPolicy(policy: RetryPolicy)

المعلمات

policy

RetryPolicy

{RetryPolicy} نهج إعادة المحاولة الذي يجب استخدامه لجميع العمليات المستقبلية.

موروث من InternalClient.setRetryPolicy

setTransportOptions(any)

function setTransportOptions(options: any): Promise<TransportConfigured>

المعلمات

options

any

المرتجعات

Promise<TransportConfigured>

موروث من InternalClient.setTransportOptions

setTransportOptions(any, Callback<TransportConfigured>)

function setTransportOptions(options: any, done: Callback<TransportConfigured>)

المعلمات

options

any

done

Callback<TransportConfigured>

موروث من InternalClient.setTransportOptions

updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)

function updateSharedAccessSignature(sharedAccessSignature: string, updateSasCallback?: Callback<SharedAccessSignatureUpdated>)

المعلمات

sharedAccessSignature

string

updateSasCallback

Callback<SharedAccessSignatureUpdated>

موروث من InternalClient.updateSharedAccessSignature

[captureRejectionSymbol](Error, string | symbol, any[])

يتم استدعاء هذه Symbol.for('nodejs.rejection') الطريقة في حال حدوث رفض وعد عند إصدار حدث ويتم captureRejections تفعيله على الباعث. من الممكن استخدامه events.captureRejectionSymbol بدلا من Symbol.for('nodejs.rejection').

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[])

المعلمات

error

Error

event

string | symbol

args

any[]

الموروث من InternalClient.__@captureRejectionSymbol@129