Client class
يستخدم عميل جهاز IoT Hub لتوصيل جهاز بمركز Azure IoT.
يجب على مستخدمي SDK استدعاء أحد أساليب المصنع، منConnectionString أو منSharedAccessSignature لإنشاء عميل جهاز IoT Hub.
- يمتد
-
InternalClient
المنشئون
Client(Device |
الخصائص الموروثة
capture |
القيمة: المنطقية تغيير خيار |
capture |
القيمة: راجع كيفية كتابة |
default |
بشكل افتراضي، يمكن تسجيل وحدة استماع كن حذرا عند تعيين هذا ليس حدا صعبا. سيسمح مثيل
يمكن استخدام علامة سطر الأوامر يمكن فحص التحذير المنبعث باستخدام |
error |
يجب استخدام هذا الرمز لتثبيت وحدة استماع لمراقبة الأحداث لا يؤدي تثبيت وحدة استماع باستخدام هذا الرمز إلى تغيير السلوك بمجرد إصدار حدث |
الأساليب
الأساليب المتوارثة
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(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 |
تفاصيل المنشئ
Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)
new Client(transport: DeviceTransport, connStr?: string, blobUploadClient?: BlobUploadClient, fileUploadApi?: FileUploadInterface)
المعلمات
- transport
- DeviceTransport
كائن ينفذ الواجهة المتوقعة لعنصر نقل، على سبيل المثال، http.
- connStr
-
string
سلسلة اتصال (اختيارية: عند عدم توفيرها، يجب استدعاء updateSharedAccessSignature لتعيين الرمز المميز SharedAccessSignature مباشرة).
- blobUploadClient
-
BlobUploadClient
كائن قادر على تحميل دفق إلى كائن ثنائي كبير الحجم.
- fileUploadApi
-
FileUploadInterface
كائن يستخدم للتواصل مع IoT Hub للإجراءات ذات الصلة ب Blob Storage.
تفاصيل الخاصية الموروثة
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')
وسيكون له خصائص emitter
type
count
الإضافية، مع الإشارة إلى مثيل انبعاث الحدث واسم الحدث وعدد المستمعين المرفقين، على التوالي.
تم تعيين الخاصية 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>)
إغلاق اتصال النقل وإتلاف موارد العميل.
ملاحظة: بعد استدعاء هذا الأسلوب، لا يمكن إعادة استخدام كائن العميل.
function close(closeCallback?: Callback<Disconnected>)
المعلمات
- closeCallback
-
Callback<Disconnected>
دالة اختيارية لاستدعاء بمجرد قطع اتصال النقل وإغلاق العميل.
fromAuthenticationProvider(AuthenticationProvider, any)
إنشاء عميل جهاز IoT Hub من أسلوب المصادقة المحدد واستخدام نوع النقل المحدد.
static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): Client
المعلمات
- authenticationProvider
-
AuthenticationProvider
الكائن المستخدم للحصول على معلمات المصادقة لمركز IoT.
- transportCtor
-
any
بروتوكول النقل المستخدم للاتصال بمركز IoT.
المرتجعات
fromConnectionString(string, any)
إنشاء عميل جهاز IoT Hub من سلسلة الاتصال المحددة باستخدام نوع النقل المحدد.
static function fromConnectionString(connStr: string, transportCtor: any): Client
المعلمات
- connStr
-
string
سلسلة اتصال تغلف أذونات "اتصال الجهاز" على مركز IoT.
- transportCtor
-
any
منشئ النقل.
المرتجعات
fromSharedAccessSignature(string, any)
إنشاء عميل جهاز IoT Hub من توقيع الوصول المشترك المحدد باستخدام نوع النقل المحدد.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): Client
المعلمات
- sharedAccessSignature
-
string
توقيع وصول مشترك يغلف أذونات "اتصال الجهاز" على مركز IoT.
- transportCtor
-
any
المرتجعات
getBlobSharedAccessSignature(string)
function getBlobSharedAccessSignature(blobName: string): Promise<UploadParams>
المعلمات
- blobName
-
string
المرتجعات
Promise<UploadParams>
getBlobSharedAccessSignature(string, Callback<UploadParams>)
يحصل getBlobSharedAccessSignature
على رمز SAS المميز لحساب التخزين المرتبط من IoT Hub
function getBlobSharedAccessSignature(blobName: string, callback?: Callback<UploadParams>)
المعلمات
- blobName
-
string
الاسم الذي سيتم استخدامه للكائن الثنائي كبير الحجم الذي سيتم إنشاؤه مع محتوى الدفق.
- callback
-
Callback<UploadParams>
رد اتصال اختياري للاتصال عند اكتمال التحميل.
notifyBlobUploadStatus(string, boolean, number, string)
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string): Promise<void>
المعلمات
- correlationId
-
string
- isSuccess
-
boolean
- statusCode
-
number
- statusDescription
-
string
المرتجعات
Promise<void>
notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)
يرسل أسلوب notifyBlobUploadStatus
IoT Hub نتيجة تحميل كائن ثنائي كبير الحجم.
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string, callback?: ErrorCallback)
المعلمات
- correlationId
-
string
معرف لربط حالة تحميل إلى كائن ثنائي كبير الحجم معين. تم إنشاؤه أثناء استدعاء getBlobSharedAccessSignature
.
- isSuccess
-
boolean
حالة النجاح أو الفشل من نتيجة عملية كائن ثنائي كبير الحجم للتخزين.
- statusCode
-
number
رمز حالة HTTP المقترن بنتيجة كائن ثنائي كبير الحجم للتخزين.
- statusDescription
-
string
وصف رمز حالة HTTP.
- callback
-
ErrorCallback
رد اتصال اختياري للاتصال عند اكتمال التحميل.
onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
تسجيل رد اتصال لأسلوب يسمى methodName
.
function onDeviceMethod(methodName: string, callback: (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
المعلمات
- methodName
-
string
اسم الأسلوب الذي سيتم التعامل معه بواسطة رد الاتصال
- callback
-
(request: DeviceMethodRequest, response: DeviceMethodResponse) => void
الدالة التي يجب استدعاؤها كلما تم تلقي طلب أسلوب للأسلوب المسمى methodName
.
setOptions(DeviceClientOptions)
function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>
المعلمات
- options
- DeviceClientOptions
المرتجعات
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
function setOptions(options: DeviceClientOptions, done: Callback<TransportConfigured>)
المعلمات
- options
- DeviceClientOptions
- done
-
Callback<TransportConfigured>
uploadToBlob(string, Stream, number)
function uploadToBlob(blobName: string, stream: Stream, streamLength: number): Promise<void>
المعلمات
- blobName
-
string
- stream
-
Stream
- streamLength
-
number
المرتجعات
Promise<void>
uploadToBlob(string, Stream, number, ErrorCallback)
يقوم أسلوب uploadToBlob
بتحميل دفق إلى كائن ثنائي كبير الحجم.
function uploadToBlob(blobName: string, stream: Stream, streamLength: number, callback: ErrorCallback)
المعلمات
- blobName
-
string
الاسم الذي سيتم استخدامه للكائن الثنائي كبير الحجم الذي سيتم إنشاؤه مع محتوى الدفق.
- stream
-
Stream
يجب تحميل البيانات إلى ذلك إلى الكائن الثنائي كبير الحجم.
- streamLength
-
number
يجب تحميل حجم البيانات إلى ذلك إلى الكائن الثنائي كبير الحجم.
- callback
-
ErrorCallback
تفاصيل الأساليب المتوارثة
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): Client
المعلمات
- 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.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)
إرجاع نسخة من صفيف المستمعين للحدث المسمى eventName
.
على سبيل EventEmitter
s يتصرف هذا تماما مثل استدعاء .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
s يتصرف هذا تماما مثل استدعاء .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): Client
المعلمات
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
المرتجعات
موروث من InternalClient.off
on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)
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());
استخدم الخيار close
لتحديد صفيف من أسماء الأحداث التي ستنهي التكرار:
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);
ee.emit('close');
});
for await (const event of on(ee, 'foo', { close: ['close'] })) {
console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>
المعلمات
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterIteratorOptions
المرتجعات
AsyncIterator<any[], any, any>
AsyncIterator
التي تتكرر eventName
الأحداث المنبعثة من emitter
موروث من InternalClient.on
on(EventTarget, string, StaticEventEmitterIteratorOptions)
static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>
المعلمات
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterIteratorOptions
المرتجعات
AsyncIterator<any[], any, any>
موروث من 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): Client
المعلمات
- 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)
إضافة دالة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): Client
المعلمات
- 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
إلى إضافة listener
واستدعاؤها عدة مرات.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
إرجاع مرجع إلى EventEmitter
، بحيث يمكن ربط الاستدعاءات.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
المعلمات
- eventName
-
string | symbol
اسم الحدث.
- listener
-
(args: any[]) => void
دالة رد الاتصال
المرتجعات
موروث من InternalClient.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
إضافة دالةeventName
، تتم إزالة وحدة الاستماع هذه، ثم استدعاؤها.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
إرجاع مرجع إلى EventEmitter
، بحيث يمكن ربط الاستدعاءات.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
المعلمات
- 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): Client
المعلمات
- 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): Client
المعلمات
- 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): Client
المعلمات
- 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)[]
صفر أو أكثر من مثيلات {EventTarget} أو {EventEmitter}. إذا لم يتم تحديد أي عنصر، يتم تعيين n
كحد أقصى افتراضي لكافة كائنات {EventTarget} و{EventEmitter} التي تم إنشاؤها حديثا.
موروث من 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@141