ModuleClient class
يستخدم عميل جهاز IoT Hub لتوصيل جهاز بمركز Azure IoT.
يجب على مستخدمي SDK استدعاء إحدى أساليب المصنع، منConnectionString أو fromSharedAccessSignature لإنشاء عميل جهاز IoT Hub.
- Extends
-
InternalClient
الخصائص الموروثة
capture |
القيمة: منطقي تغيير الخيار الافتراضي |
capture |
القيمة: تعرف على كيفية كتابة مخصص |
default |
بشكل افتراضي، يمكن تسجيل الحد الأقصى من كن حذرا عند تعيين هذا ليس حدا صعبا. سيسمح المثيل
يمكن فحص التحذير المنبعث باستخدام |
error |
يجب استخدام هذا الرمز لتثبيت وحدة استماع لمراقبة لا يؤدي تثبيت وحدة استماع باستخدام هذا الرمز إلى تغيير السلوك بمجرد |
الأساليب
close() | |
close(Callback<Disconnected>) | إغلاق اتصال النقل وتدمير موارد العميل. ملاحظة: بعد استدعاء هذا الأسلوب، لا يمكن إعادة استخدام كائن ModuleClient. |
from |
إنشاء عميل وحدة IoT Hub من أسلوب المصادقة المحدد واستخدام نوع النقل المحدد. |
from |
إنشاء عميل جهاز IoT Hub من سلسلة الاتصال المحدد باستخدام نوع النقل المحدد. |
from |
|
from |
إنشاء عميل وحدة IoT Hub باستخدام معلومات التكوين من البيئة. إذا كان متغير بيئة يسمى
|
from |
إنشاء عميل وحدة IoT Hub من توقيع الوصول المشترك المحدد باستخدام نوع النقل المحدد. |
invoke |
|
invoke |
استدعاء أسلوب على جهاز انتقال البيانات من الخادم أو على وحدة نمطية أخرى على نفس جهاز IoTEdge. يرجى ملاحظة أن هذه الميزة تعمل فقط عند تشغيل الوحدة النمطية كجزء من جهاز IoTEdge. |
invoke |
|
invoke |
|
on |
تسجيل رد اتصال لأسلوب يسمى |
send |
|
send |
إرسال حدث إلى إخراج الوحدة النمطية المحددة |
send |
|
send |
إرسال صفيف من الأحداث إلى إخراج الوحدة النمطية المحددة |
set |
|
set |
يمرر الخيارات إلى |
الأساليب المتوارثة
abandon(Message) | |
abandon(Message, Callback<Message |
|
add |
يستمع مرة واحدة إلى الاستماع إلى تسمح واجهة برمجة التطبيقات هذه باستخدام إرجاع يمكن التخلص منه بحيث يمكن إلغاء اشتراكه من بسهولة أكبر.
|
add |
الاسم المستعار ل |
complete(Message) | |
complete(Message, Callback<Message |
|
emit<K>(string | symbol, Any |
يستدعي بشكل متزامن كل من المستمعين المسجلين للحدث المسمى إرجاع
|
event |
إرجاع صفيف يسرد الأحداث التي لدى المرسل مستمعين مسجلين لها. القيم في الصفيف هي سلاسل أو
|
get |
إرجاع نسخة من صفيف المستمعين للحدث المسمى لأن بالنسبة إلى
|
get |
إرجاع الحد الأقصى الحالي لقيمة |
get |
إرجاع الحد الأقصى المعين حاليا لمقدار المستمعين. لأن بالنسبة إلى
|
get |
|
get |
|
listener |
أسلوب فئة يقوم بإرجاع عدد المستمعين للمقدم
|
listener |
إرجاع عدد المستمعين الذين يستمعون للحدث المسمى |
listeners<K>(string | symbol) | إرجاع نسخة من صفيف المستمعين للحدث المسمى
|
off<K>(string | symbol, (args: any[]) => void) | الاسم المستعار ل |
on(Event |
|
on<K>(string | symbol, (args: any[]) => void) | يضيف الدالة
إرجاع مرجع إلى بشكل افتراضي، يتم استدعاء مستمعي الأحداث بالترتيب الذي تتم إضافتهم به.
|
once(Event |
هذه الطريقة عامة عمدا وتعمل مع واجهة EventTarget للنظام الأساسي على الويب، والتي لا تحتوي على دلالات حدث خاص
يتم استخدام المعالجة الخاصة للحدث
|
once(Event |
|
once<K>(string | symbol, (args: any[]) => void) | يضيف دالة لمرة
إرجاع مرجع إلى بشكل افتراضي، يتم استدعاء مستمعي الأحداث بالترتيب الذي تتم إضافتهم به.
|
open() | |
open(Callback<Connected>) | |
prepend |
يضيف الدالة
إرجاع مرجع إلى |
prepend |
يضيف دالة لمرة
إرجاع مرجع إلى |
raw |
إرجاع نسخة من صفيف المستمعين للحدث المسمى
|
reject(Message) | |
reject(Message, Callback<Message |
|
remove |
يزيل جميع المستمعين أو المستمعين المحددين من الممارسات السيئة إزالة المستمعين الذين تمت إضافتهم في مكان آخر في التعليمات البرمجية، خاصة عندما إرجاع مرجع إلى |
remove |
يزيل المحدد
بمجرد إصدار حدث، يتم استدعاء جميع المستمعين المرفقين به في وقت الانبعاث بالترتيب. وهذا يعني أن أي
نظرا لأنه تتم إدارة المستمعين باستخدام صفيف داخلي، سيؤدي استدعاء هذا إلى تغيير مؤشرات موضع أي وحدة استماع مسجلة بعد إزالة وحدة الاستماع. لن يؤثر هذا على الترتيب الذي يتم استدعاء المستمعين به، ولكنه يعني أن أي نسخ من صفيف المستمع كما تم إرجاعها بواسطة عند إضافة دالة واحدة كمعالج عدة مرات لحدث واحد (كما في المثال أدناه)،
إرجاع مرجع إلى |
send |
|
send |
|
send |
|
send |
|
set |
بشكل افتراضي إرجاع مرجع إلى |
set |
|
set |
تعيين نهج إعادة المحاولة الذي يستخدمه العميل في جميع العمليات. الافتراضي هو ExponentialBackoffWithJitter. |
set |
|
set |
|
update |
|
[capture |
تفاصيل الخاصية الموروثة
captureRejections
القيمة: منطقي
تغيير الخيار الافتراضي captureRejections
على جميع العناصر الجديدة EventEmitter
.
static captureRejections: boolean
قيمة الخاصية
boolean
موروث من InternalClient.captureRejections
captureRejectionSymbol
القيمة: Symbol.for('nodejs.rejection')
تعرف على كيفية كتابة مخصص rejection handler
.
static captureRejectionSymbol: typeof captureRejectionSymbol
قيمة الخاصية
typeof captureRejectionSymbol
موروث من InternalClient.captureRejectionSymbol
defaultMaxListeners
بشكل افتراضي، يمكن تسجيل الحد الأقصى من 10
المستمعين لأي حدث واحد. يمكن تغيير هذا الحد للمثيلات الفردية EventEmitter
باستخدام emitter.setMaxListeners(n)
الأسلوب . لتغيير الإعداد الافتراضي لجميعEventEmitter
المثيلات، يمكن استخدام الخاصية events.defaultMaxListeners
. إذا لم تكن هذه القيمة رقما موجبا، RangeError
يتم طرح.
كن حذرا عند تعيين events.defaultMaxListeners
لأن التغيير يؤثر على جميعEventEmitter
المثيلات، بما في ذلك تلك التي تم إنشاؤها قبل إجراء التغيير. ومع ذلك، لا يزال الاستدعاء emitter.setMaxListeners(n)
له الأسبقية على events.defaultMaxListeners
.
هذا ليس حدا صعبا. سيسمح المثيل EventEmitter
بإضافة المزيد من المستمعين ولكنه سيخرج تحذير تتبع إلى stderr يشير إلى أنه تم الكشف عن "تسرب محتمل لذاكرة EventEmitter". لأي واحد EventEmitter
، يمكن استخدام الأسلوبين emitter.getMaxListeners()
و emitter.setMaxListeners()
لتجنب هذا التحذير مؤقتا:
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
// do stuff
emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});
--trace-warnings
يمكن استخدام علامة سطر الأوامر لعرض تتبع المكدس لمثل هذه التحذيرات.
يمكن فحص التحذير المنبعث باستخدام process.on('warning')
وسيكون له خصائص و و count
إضافيةemitter
type
، بالإشارة إلى مثيل انبعاث الحدث واسم الحدث وعدد المستمعين المرفقين، على التوالي.
name
تم تعيين الخاصية الخاصة به إلى 'MaxListenersExceededWarning'
.
static defaultMaxListeners: number
قيمة الخاصية
number
موروث من InternalClient.defaultMaxListeners
errorMonitor
يجب استخدام هذا الرمز لتثبيت وحدة استماع لمراقبة 'error'
الأحداث فقط. يتم استدعاء المستمعين المثبتين باستخدام هذا الرمز قبل استدعاء المستمعين العاديين 'error'
.
لا يؤدي تثبيت وحدة استماع باستخدام هذا الرمز إلى تغيير السلوك بمجرد 'error'
إصدار حدث. لذلك، ستستمر العملية في التعطل إذا لم يتم تثبيت وحدة استماع عادية 'error'
.
static errorMonitor: typeof errorMonitor
قيمة الخاصية
typeof errorMonitor
موروث من InternalClient.errorMonitor
تفاصيل الأسلوب
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>
المعلمات
- options
- DeviceClientOptions
المرتجعات
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
يمرر الخيارات إلى ModuleClient
الكائن الذي يمكن استخدامه لتكوين النقل.
function setOptions(options: DeviceClientOptions, done?: Callback<TransportConfigured>)
المعلمات
- options
- DeviceClientOptions
كائن DeviceClientOptions .
- 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
addAbortListener(AbortSignal, (event: Event) => void)
يستمع مرة واحدة إلى abort
الحدث على المقدم signal
.
الاستماع إلى abort
الحدث على إشارات إحباط غير آمن وقد يؤدي إلى تسرب الموارد حيث يمكن لجهة خارجية أخرى مع الإشارة استدعاء e.stopImmediatePropagation()
. للأسف لا يمكن Node.js تغيير هذا لأنه ينتهك معيار الويب. بالإضافة إلى ذلك، تجعل واجهة برمجة التطبيقات الأصلية من السهل نسيان إزالة المستمعين.
تسمح واجهة برمجة التطبيقات هذه باستخدام AbortSignal
s بأمان في واجهات برمجة التطبيقات Node.js عن طريق حل هاتين المشكلتين عن طريق الاستماع إلى الحدث بحيث stopImmediatePropagation
لا يمنع المستمع من التشغيل.
إرجاع يمكن التخلص منه بحيث يمكن إلغاء اشتراكه من بسهولة أكبر.
import { addAbortListener } from 'node:events';
function example(signal) {
let disposable;
try {
signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
disposable = addAbortListener(signal, (e) => {
// Do something when signal is aborted.
});
} finally {
disposable?.[Symbol.dispose]();
}
}
static function addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable
المعلمات
- signal
-
AbortSignal
- resource
-
(event: Event) => void
المرتجعات
Disposable
يمكن التخلص منه الذي يزيل وحدة abort
الاستماع.
موروث من InternalClient.addAbortListener
addListener<K>(string | symbol, (args: any[]) => void)
الاسم المستعار ل emitter.on(eventName, listener)
.
function addListener<K>(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<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
موروث من InternalClient.emit
eventNames()
إرجاع صفيف يسرد الأحداث التي لدى المرسل مستمعين مسجلين لها. القيم في الصفيف هي سلاسل أو Symbol
s.
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.event
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)
إرجاع نسخة من صفيف المستمعين للحدث المسمى eventName
.
لأن EventEmitter
هذا يتصرف تماما نفس استدعاء .listeners
على الباعث.
بالنسبة إلى EventTarget
s، هذه هي الطريقة الوحيدة للحصول على مستمعي الحدث لهدف الحدث. هذا مفيد لأغراض تصحيح الأخطاء والتشخيص.
import { getEventListeners, EventEmitter } from 'node:events';
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
static function getEventListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget, name: string | symbol): Function[]
المعلمات
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
- name
-
string | symbol
المرتجعات
Function[]
موروث من InternalClient.getEventListeners
getMaxListeners()
إرجاع الحد الأقصى الحالي لقيمة EventEmitter
وحدة الاستماع التي يتم تعيينها إما حسب emitter.setMaxListeners(n)
أو الإعدادات الافتراضية إلى defaultMaxListeners.
function getMaxListeners(): number
المرتجعات
number
موروث من InternalClient.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)
إرجاع الحد الأقصى المعين حاليا لمقدار المستمعين.
لأن EventEmitter
هذا يتصرف تماما نفس استدعاء .getMaxListeners
على الباعث.
بالنسبة إلى EventTarget
s، هذه هي الطريقة الوحيدة للحصول على الحد الأقصى لمستمعي الأحداث لهدف الحدث. إذا تجاوز عدد معالجات الأحداث على EventTarget واحد الحد الأقصى لمجموعة الأحداث، فسيطبع EventTarget تحذيرا.
import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';
{
const ee = new EventEmitter();
console.log(getMaxListeners(ee)); // 10
setMaxListeners(11, ee);
console.log(getMaxListeners(ee)); // 11
}
{
const et = new EventTarget();
console.log(getMaxListeners(et)); // 10
setMaxListeners(11, et);
console.log(getMaxListeners(et)); // 11
}
static function getMaxListeners(emitter: EventEmitter<DefaultEventMap> | EventTarget): number
المعلمات
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
المرتجعات
number
موروث من InternalClient.getMaxListeners
getTwin()
getTwin(Callback<Twin>)
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)
تحذير
واجهة برمجة التطبيقات هذه مهملة الآن.
Since v3.2.0 - Use listenerCount
instead.
أسلوب فئة يقوم بإرجاع عدد المستمعين للمقدم eventName
المسجل في المحدد emitter
.
import { EventEmitter, listenerCount } from 'node:events';
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
static function listenerCount(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol): number
المعلمات
- emitter
-
EventEmitter<DefaultEventMap>
الباعث للاستعلام
- eventName
-
string | symbol
اسم الحدث
المرتجعات
number
موروث من InternalClient.listenerCount
listenerCount<K>(string | symbol, Function)
إرجاع عدد المستمعين الذين يستمعون للحدث المسمى eventName
.
إذا listener
تم توفيره، فسيرجع عدد المرات التي يتم فيها العثور على وحدة الإصغاء في قائمة مستمعي الحدث.
function listenerCount<K>(eventName: string | symbol, listener?: Function): number
المعلمات
- eventName
-
string | symbol
اسم الحدث الذي يتم الاستماع إليه
- listener
-
Function
دالة معالج الأحداث
المرتجعات
number
موروث من InternalClient.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[]
موروث من InternalClient.listeners
off<K>(string | symbol, (args: any[]) => void)
الاسم المستعار ل emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
المعلمات
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
المرتجعات
موروث من InternalClient.off
on(EventEmitter<DefaultEventMap>, string, StaticEventEmitterOptions)
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
AsyncIterator
إرجاع الذي يكرر eventName
الأحداث. سيرمي إذا EventEmitter
انبعث 'error'
. يزيل جميع المستمعين عند الخروج من الحلقة. الذي value
يتم إرجاعه بواسطة كل تكرار هو صفيف يتكون من وسيطات الحدث المنبعثة.
AbortSignal
يمكن استخدام لإلغاء انتظار الأحداث:
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ac = new AbortController();
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
المعلمات
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string
اسم الحدث الذي يتم الاستماع إليه
- options
-
StaticEventEmitterOptions
المرتجعات
AsyncIterableIterator<any>
AsyncIterator
الذي يكرر eventName
الأحداث المنبعثة منemitter
موروث من InternalClient.on
on<K>(string | symbol, (args: any[]) => void)
يضيف الدالة listener
إلى نهاية صفيف المستمعين للحدث المسمى eventName
. لا يتم إجراء أي عمليات فحص لمعرفة ما إذا كان listener
قد تمت إضافته بالفعل. ستؤدي المكالمات المتعددة التي تمرر نفس المجموعة من eventName
و listener
إلى 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<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
المعلمات
- eventName
-
string | symbol
اسم الحدث.
- listener
-
(args: any[]) => void
دالة رد الاتصال
المرتجعات
موروث من InternalClient.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Promise
ينشئ الذي يتم تنفيذه عند EventEmitter
إصدار الحدث المحدد أو الذي يتم رفضه إذا EventEmitter
تم إصداره 'error'
أثناء الانتظار.
Promise
سيتم حل مع صفيف من جميع الوسيطات المنبعثة إلى الحدث المحدد.
هذه الطريقة عامة عمدا وتعمل مع واجهة EventTarget للنظام الأساسي على الويب، والتي لا تحتوي على دلالات حدث خاص'error'
ولا تستمع إلى 'error'
الحدث.
import { once, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.error('error happened', err);
}
يتم استخدام المعالجة الخاصة للحدث 'error'
فقط عند events.once()
استخدامها لانتظار حدث آخر. إذا events.once()
تم استخدام لانتظار الحدث نفسهerror'
، فسيتم التعامل معه كأي نوع آخر من الأحداث دون معالجة خاصة:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.error('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
AbortSignal
يمكن استخدام لإلغاء انتظار الحدث:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
const ac = new AbortController();
async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}
foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
static function once(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
المعلمات
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterOptions
المرتجعات
Promise<any[]>
موروث من InternalClient.once
once(EventTarget, string, StaticEventEmitterOptions)
static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
المعلمات
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterOptions
المرتجعات
Promise<any[]>
موروث من InternalClient.once
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): 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<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): ModuleClient
المعلمات
- eventName
-
string | symbol
اسم الحدث.
- listener
-
(args: any[]) => void
دالة رد الاتصال
المرتجعات
موروث من InternalClient.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): ModuleClient
المعلمات
- eventName
-
string | symbol
اسم الحدث.
- listener
-
(args: any[]) => void
دالة رد الاتصال
المرتجعات
موروث من InternalClient.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[]
موروث من 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(string | symbol)
يزيل جميع المستمعين أو المستمعين المحددين eventName
.
من الممارسات السيئة إزالة المستمعين الذين تمت إضافتهم في مكان آخر في التعليمات البرمجية، خاصة عندما EventEmitter
تم إنشاء المثيل بواسطة بعض المكونات أو الوحدة النمطية الأخرى (مثل مآخذ التوصيل أو تدفقات الملفات).
إرجاع مرجع إلى EventEmitter
، بحيث يمكن ربط الاستدعاءات.
function removeAllListeners(eventName?: string | symbol): ModuleClient
المعلمات
- eventName
-
string | symbol
المرتجعات
موروث من InternalClient.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): 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)
بشكل افتراضي EventEmitter
، سيطبع s تحذيرا إذا تمت إضافة أكثر من 10
وحدات الاستماع لحدث معين. هذا افتراضي مفيد يساعد على العثور على تسربات الذاكرة. emitter.setMaxListeners()
يسمح الأسلوب بتعديل الحد لهذا المثيل المحددEventEmitter
. يمكن تعيين القيمة إلى Infinity
(أو 0
) للإشارة إلى عدد غير محدود من المستمعين.
إرجاع مرجع إلى EventEmitter
، بحيث يمكن ربط الاستدعاءات.
function setMaxListeners(n: number): ModuleClient
المعلمات
- n
-
number
المرتجعات
موروث من InternalClient.setMaxListeners
setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';
const target = new EventTarget();
const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);
static function setMaxListeners(n?: number, eventTargets: (EventEmitter<DefaultEventMap> | EventTarget)[])
المعلمات
- n
-
number
رقم غير سالب. الحد الأقصى لعدد المستمعين لكل EventTarget
حدث.
- eventTargets
-
(EventEmitter<DefaultEventMap> | EventTarget)[]
موروث من 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]<K>(Error, string | symbol, AnyRest)
function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)
المعلمات
- error
-
Error
- event
-
string | symbol
- args
-
AnyRest
موروث من InternalClient.__@captureRejectionSymbol@138