ModuleClient class

IoT Hub klienta zařízení použitého k připojení zařízení ke službě Azure IoT Hub.

Uživatelé sady SDK by měli zavolat jednu z metod továrny zConnectionString nebo zSharedAccessSignature, aby vytvořili klienta IoT Hub zařízení.

Extends

InternalClient

Zděděné vlastnosti

captureRejections

Hodnota: logická hodnota

Změňte výchozí captureRejections možnost u všech nových EventEmitter objektů.

captureRejectionSymbol

Hodnota: Symbol.for('nodejs.rejection')

Přečtěte si, jak napsat vlastní rejection handler.

defaultMaxListeners

Ve výchozím nastavení je možné pro libovolnou jednu událost zaregistrovat maximum naslouchacích 10 procesů. Tento limit je možné změnit pro jednotlivé EventEmitter instance pomocí emitter.setMaxListeners(n) metody . Pokud chcete změnit výchozí nastavení pro všechnyEventEmitter instance, events.defaultMaxListenersmůžete použít vlastnost . Pokud tato hodnota není kladné číslo, RangeErrorje vyvolán argument .

Při nastavování events.defaultMaxListeners hodnoty buďte opatrní, protože změna ovlivní všechnyEventEmitter instance, včetně těch, které byly vytvořeny před provedením změny. Volání emitter.setMaxListeners(n) ale stále má přednost před events.defaultMaxListeners.

Toto není pevný limit. Instance EventEmitter umožní přidání dalších naslouchacích procesů, ale vypíše upozornění trasování do stderru, které bude indikovat, že byl zjištěn "možný nevracení paměti EventEmitter". EventEmitteremitter.getMaxListeners() K dočasnému zabránění tomuto upozornění můžete použít metody aemitter.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));
});

Příznak --trace-warnings příkazového řádku lze použít k zobrazení trasování zásobníku pro taková upozornění.

Vygenerované upozornění lze zkontrolovat pomocí process.on('warning') a bude mít další emittervlastnosti , typea, které count odkazují na instanci emitoru událostí, název události a počet připojených naslouchacích procesů. Jeho name vlastnost je nastavená na 'MaxListenersExceededWarning'.

errorMonitor

Tento symbol se používá k instalaci naslouchacího procesu pouze pro monitorovací 'error'události. Naslouchací procesy nainstalované pomocí tohoto symbolu se volají před zavolání běžných'error' naslouchacích procesů.

Instalace naslouchacího procesu pomocí tohoto symbolu nezmění chování po'error' vygenerování události. Proto se proces stále chybově ukončí, pokud není nainstalovaný žádný běžný 'error' naslouchací proces.

Metody

close()
close(Callback<Disconnected>)

Ukončí přenosové připojení a zničí prostředky klienta.

Poznámka: Po volání této metody nelze objekt ModuleClient znovu použít.

fromAuthenticationProvider(AuthenticationProvider, any)

Vytvoří klienta modulu IoT Hub z dané metody ověřování a s použitím daného typu přenosu.

fromConnectionString(string, any)

Vytvoří klienta IoT Hub zařízení z daného připojovací řetězec s použitím daného typu přenosu.

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

Vytvoří klienta modulu IoT Hub pomocí konfiguračních informací z prostředí.

Pokud proměnná prostředí s názvem EdgeHubConnectionString nebo IotHubConnectionString existuje, použije se tato hodnota a chování je stejné jako volání fromConnectionString předání. Pokud tyto proměnné prostředí neexistují, musí být definovány následující proměnné:

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

Vytvoří klienta modulu IoT Hub z daného sdíleného přístupového podpisu pomocí daného typu přenosu.

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

Vyvolá metodu na podřízené zařízení nebo v jiném modulu na stejném zařízení IoTEdge. Upozorňujeme, že tato funkce funguje jenom v případě, že se modul spouští jako součást zařízení IoTEdge.

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

Zaregistruje zpětné volání pro metodu s názvem methodName.

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

Odešle událost do výstupu daného modulu.

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

Odešle pole událostí do výstupu daného modulu.

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

Předá možnosti objektu ModuleClient , které lze použít ke konfiguraci přenosu.

Zděděné metody

abandon(Message)
abandon(Message, Callback<MessageAbandoned>)
addAbortListener(AbortSignal, (event: Event) => void)

Naslouchá jednou abort události na zadaném signal.

abort Naslouchání události na signálech přerušení je nebezpečné a může vést k úniku prostředků, protože jiná třetí strana se signálem může volat e.stopImmediatePropagation(). Bohužel Node.js to nemůže změnit, protože by to bylo porušením webového standardu. Původní rozhraní API navíc umožňuje snadno zapomenout odebrat naslouchací procesy.

Toto rozhraní API umožňuje bezpečně používat AbortSignals v rozhraních Node.js API tím, že tyto dva problémy řeší nasloucháním události, která stopImmediatePropagation nebrání spuštění naslouchacího procesu.

Vrátí jednorázový, aby bylo možné ho snadněji odhlásit.

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]();
  }
}
addListener<K>(string | symbol, (args: any[]) => void)

Alias pro emitter.on(eventName, listener).

complete(Message)
complete(Message, Callback<MessageCompleted>)
emit<K>(string | symbol, AnyRest)

Synchronně volá všechny naslouchací procesy zaregistrované pro událost s názvemeventName v pořadí, v jakém byly zaregistrovány, a předávají jim zadané argumenty.

Vrátí, true pokud událost měla naslouchací procesy, false jinak.

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

Vrátí pole se seznamem událostí, pro které má emitor zaregistrované naslouchací procesy. Hodnoty v poli jsou řetězce nebo Symbols.

import { EventEmitter } from 'node:events';

const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
getEventListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget, string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName.

Pro EventEmitters se to chová úplně stejně jako volání .listeners na emitoru.

Pro EventTargets je to jediný způsob, jak získat naslouchací procesy událostí pro cíl události. To je užitečné pro účely ladění a diagnostiky.

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] ]
}
getMaxListeners()

Vrátí aktuální maximální hodnotu naslouchacího EventEmitter procesu, která je nastavena emitter.setMaxListeners(n) nebo ve výchozím nastavení defaultMaxListeners.

getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)

Vrátí aktuálně nastavený maximální počet naslouchacích procesů.

Pro EventEmitters se to chová úplně stejně jako volání .getMaxListeners na emitoru.

Pro EventTargets je to jediný způsob, jak získat maximální počet naslouchacích procesů událostí pro cíl události. Pokud počet obslužných rutin událostí v jednom eventTargetu překročí maximální hodnotu, eventTarget vytiskne upozornění.

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
}
getTwin()
getTwin(Callback<Twin>)
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Metoda třídy, která vrací počet naslouchacích procesů pro danou eventNamezaregistrovanou na daném emitterobjektu .

import { EventEmitter, listenerCount } from 'node:events';

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
listenerCount<K>(string | symbol, Function)

Vrátí počet naslouchacích procesů, které naslouchají události s názvem eventName. Pokud listener je k dispozici, vrátí, kolikrát je naslouchací proces nalezen v seznamu naslouchacích procesů události.

listeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName.

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

Alias pro emitter.removeListener().

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

Vrátí hodnotu AsyncIterator , která iteruje eventName události. Vyvolá se, pokud vygeneruje EventEmitter'error'. Při ukončení smyčky odebere všechny naslouchací procesy. Vrácené value každou iterací je pole složené z vygenerovaných argumentů události.

Můžete AbortSignal použít k zrušení čekání na události:

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

listener Přidá funkci na konec pole naslouchacích procesů pro událost s názvem eventName. Neprovedou se žádné kontroly, aby se zjistilo, jestli listener už byl přidán. Více volání předávajících stejnou kombinaci eventNamea listener bude mít za listener následek přidání a volání vícekrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí volají v pořadí, v jakém jsou přidány. Metoduemitter.prependListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacího procesu.

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(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Promise Vytvoří, který je splněn, když vygeneruje EventEmitter danou událost nebo která je odmítnuta, pokud EventEmitter generuje 'error' během čekání. Přeloží Promise se polem všech argumentů vygenerovaných do dané události.

Tato metoda je záměrně obecná a pracuje s rozhraním EventTarget webové platformy, které nemá žádnou zvláštní'error' sémantiku událostí a neposlouchá 'error' událost.

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);
}

Speciální zpracování 'error' události se používá pouze v případě, že events.once()se používá k čekání na jinou událost. Pokud events.once() se používá k čekání naerror' samotnou událost, považuje se za jakýkoli jiný druh události bez zvláštního zpracování:

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

Můžete AbortSignal použít k zrušení čekání na událost:

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

Přidá jednorázovoulistener funkci pro událost s názvem eventName. Při příští eventName aktivaci se tento naslouchací proces odebere a pak se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí volají v pořadí, v jakém jsou přidány. Metoduemitter.prependOnceListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacího procesu.

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

listener Přidá funkci na začátek pole naslouchacích procesů pro událost s názvem eventName. Neprovedou se žádné kontroly, aby se zjistilo, jestli listener už byl přidán. Více volání předávajících stejnou kombinaci eventNamea listener bude mít za listener následek přidání a volání vícekrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Přidá jednorázovoulistener funkci pro událost s názvem eventName na začátek pole naslouchacích procesů. Při příštím eventName aktivaci se tento naslouchací proces odebere a pak se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

rawListeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName, včetně všech obálky (například těch, které vytvořil )..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(string | symbol)

Odebere všechny naslouchací procesy nebo naslouchací procesy zadaného eventNameobjektu .

Je špatným postupem odebrat naslouchací procesy přidané jinde v kódu, zejména pokud EventEmitter instanci vytvořila jiná komponenta nebo modul (např. sokety nebo datové proudy souborů).

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Odebere zadaný listener objekt z pole naslouchacího procesu pro událost s názvemeventName.

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

removeListener() odebere z pole naslouchacího procesu maximálně jednu instanci naslouchacího procesu. Pokud byl některý jeden naslouchací proces přidán vícekrát do pole naslouchacího procesu pro zadaný eventName, removeListener() musí být volána vícekrát, aby se každá instance odebrala.

Jakmile je událost vygenerovaná, všechny naslouchací procesy připojené k ní v době generování jsou volány v pořadí. To znamená, že všechnaremoveListener() volání nebo removeAllListeners()po vygenerování a před dokončením posledního naslouchacího procesu je neodeberou zemit() probíhajících. Následující události se chovají podle očekávání.

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

Vzhledem k tomu, že se naslouchací procesy spravují pomocí interního pole, toto volání změní indexy pozic libovolného naslouchacího procesu zaregistrovaného po odebrání naslouchacího procesu. To nebude mít vliv na pořadí, ve kterém jsou volána naslouchací procesy, ale znamená to, že všechny kopie pole naslouchacího procesu vrácené metodou emitter.listeners() budou muset být znovu vytvořena.

Pokud je jedna funkce přidána jako obslužná rutina vícekrát pro jednu událost (jako v následujícím příkladu), removeListener() odebere se naposledy přidaná instance. V příkladu once('ping')je naslouchací proces odebrán:

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');

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Ve výchozím nastavení EventEmitters zobrazí upozornění, pokud je pro konkrétní událost přidáno více naslouchacích 10 procesů. Toto je užitečné výchozí nastavení, které pomáhá najít nevrácenou paměť. Metoda emitter.setMaxListeners() umožňuje úpravu limitu pro tuto konkrétní EventEmitter instanci. Hodnota může být nastavena naInfinity (nebo 0) a označuje neomezený počet naslouchacích procesů.

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

setMaxListeners(number, (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
setRetryPolicy(RetryPolicy)

Nastaví zásady opakování používané klientem pro všechny operace. Výchozí hodnota je ExponentialBackoffWithJitter.

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

Podrobnosti zděděných vlastností

captureRejections

Hodnota: logická hodnota

Změňte výchozí captureRejections možnost u všech nových EventEmitter objektů.

static captureRejections: boolean

Hodnota vlastnosti

boolean

Zděděno z InternalClient.captureRejections

captureRejectionSymbol

Hodnota: Symbol.for('nodejs.rejection')

Přečtěte si, jak napsat vlastní rejection handler.

static captureRejectionSymbol: typeof captureRejectionSymbol

Hodnota vlastnosti

typeof captureRejectionSymbol

Zděděno z InternalClient.captureRejectionSymbol

defaultMaxListeners

Ve výchozím nastavení je možné pro libovolnou jednu událost zaregistrovat maximum naslouchacích 10 procesů. Tento limit je možné změnit pro jednotlivé EventEmitter instance pomocí emitter.setMaxListeners(n) metody . Pokud chcete změnit výchozí nastavení pro všechnyEventEmitter instance, events.defaultMaxListenersmůžete použít vlastnost . Pokud tato hodnota není kladné číslo, RangeErrorje vyvolán argument .

Při nastavování events.defaultMaxListeners hodnoty buďte opatrní, protože změna ovlivní všechnyEventEmitter instance, včetně těch, které byly vytvořeny před provedením změny. Volání emitter.setMaxListeners(n) ale stále má přednost před events.defaultMaxListeners.

Toto není pevný limit. Instance EventEmitter umožní přidání dalších naslouchacích procesů, ale vypíše upozornění trasování do stderru, které bude indikovat, že byl zjištěn "možný nevracení paměti EventEmitter". EventEmitteremitter.getMaxListeners() K dočasnému zabránění tomuto upozornění můžete použít metody aemitter.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));
});

Příznak --trace-warnings příkazového řádku lze použít k zobrazení trasování zásobníku pro taková upozornění.

Vygenerované upozornění lze zkontrolovat pomocí process.on('warning') a bude mít další emittervlastnosti , typea, které count odkazují na instanci emitoru událostí, název události a počet připojených naslouchacích procesů. Jeho name vlastnost je nastavená na 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

Hodnota vlastnosti

number

Zděděno z InternalClient.defaultMaxListeners

errorMonitor

Tento symbol se používá k instalaci naslouchacího procesu pouze pro monitorovací 'error'události. Naslouchací procesy nainstalované pomocí tohoto symbolu se volají před zavolání běžných'error' naslouchacích procesů.

Instalace naslouchacího procesu pomocí tohoto symbolu nezmění chování po'error' vygenerování události. Proto se proces stále chybově ukončí, pokud není nainstalovaný žádný běžný 'error' naslouchací proces.

static errorMonitor: typeof errorMonitor

Hodnota vlastnosti

typeof errorMonitor

Zděděno z InternalClient.errorMonitor

Podrobnosti metody

close()

function close(): Promise<Disconnected>

Návraty

Promise<Disconnected>

close(Callback<Disconnected>)

Ukončí přenosové připojení a zničí prostředky klienta.

Poznámka: Po volání této metody nelze objekt ModuleClient znovu použít.

function close(closeCallback?: Callback<Disconnected>)

Parametry

closeCallback

Callback<Disconnected>

Volitelná funkce, která se má volat, jakmile je přenos odpojen a klient se zavře.

fromAuthenticationProvider(AuthenticationProvider, any)

Vytvoří klienta modulu IoT Hub z dané metody ověřování a s použitím daného typu přenosu.

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

Parametry

authenticationProvider

AuthenticationProvider

Objekt použitý k získání parametrů ověřování pro centrum IoT.

transportCtor

any

Transportní protokol použitý k připojení ke službě IoT Hub

Návraty

fromConnectionString(string, any)

Vytvoří klienta IoT Hub zařízení z daného připojovací řetězec s použitím daného typu přenosu.

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

Parametry

connStr

string

Připojovací řetězec, která zapouzdřuje oprávnění připojit zařízení ve službě IoT Hub.

transportCtor

any

Konstruktor přenosu.

Návraty

fromEnvironment(any)

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

Parametry

transportCtor

any

Návraty

Promise<ModuleClient>

fromEnvironment(any, Callback<ModuleClient>)

Vytvoří klienta modulu IoT Hub pomocí konfiguračních informací z prostředí.

Pokud proměnná prostředí s názvem EdgeHubConnectionString nebo IotHubConnectionString existuje, použije se tato hodnota a chování je stejné jako volání fromConnectionString předání. Pokud tyto proměnné prostředí neexistují, musí být definovány následující proměnné:

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

Parametry

transportCtor

any

Transportní protokol použitý k připojení ke službě IoT Hub

callback

Callback<ModuleClient>

Volitelné zpětné volání pro vyvolání při vytvoření moduluClient nebo při vytváření klienta dojde k chybě.

fromSharedAccessSignature(string, any)

Vytvoří klienta modulu IoT Hub z daného sdíleného přístupového podpisu pomocí daného typu přenosu.

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

Parametry

sharedAccessSignature

string

Sdílený přístupový podpis, který zapouzdřuje oprávnění pro připojení zařízení ve službě IoT Hub.

transportCtor

any

Návraty

invokeMethod(string, MethodParams)

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

Parametry

deviceId

string

methodParams

MethodParams

Návraty

Promise<MethodResult>

invokeMethod(string, MethodParams, Callback<MethodResult>)

Vyvolá metodu na podřízené zařízení nebo v jiném modulu na stejném zařízení IoTEdge. Upozorňujeme, že tato funkce funguje jenom v případě, že se modul spouští jako součást zařízení IoTEdge.

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

Parametry

deviceId

string

identifikátor cílového zařízení

methodParams

MethodParams

parametry volání přímé metody

callback

Callback<MethodResult>

volitelné zpětné volání, které bude vyvoláno buď s objektem Error, nebo výsledkem volání metody.

invokeMethod(string, string, MethodParams)

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

Parametry

deviceId

string

moduleId

string

methodParams

MethodParams

Návraty

Promise<MethodResult>

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

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

Parametry

deviceId

string

moduleId

string

methodParams

MethodParams

callback

Callback<MethodResult>

onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)

Zaregistruje zpětné volání pro metodu s názvem methodName.

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

Parametry

methodName

string

Název metody, kterou bude zpracovávat zpětné volání

callback

DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>

Funkce, která se musí volat při každém přijetí požadavku metody na volanou methodName metodu.

sendOutputEvent(string, Message)

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

Parametry

outputName

string

message
Message

Návraty

Promise<MessageEnqueued>

sendOutputEvent(string, Message, Callback<MessageEnqueued>)

Odešle událost do výstupu daného modulu.

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

Parametry

outputName

string

Název výstupu pro odeslání události do

message
Message

Zpráva, která se má odeslat do daného výstupu

callback

Callback<MessageEnqueued>

Volitelná funkce, která se má volat, když je operace zařazena do fronty.

sendOutputEventBatch(string, Message[])

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

Parametry

outputName

string

messages

Message[]

Návraty

Promise<MessageEnqueued>

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

Odešle pole událostí do výstupu daného modulu.

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

Parametry

outputName

string

Název výstupu pro odeslání událostí do

messages

Message[]

callback

Callback<MessageEnqueued>

Funkce, která se má volat, když jsou operace zařazeny do fronty.

setOptions(DeviceClientOptions)

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

Parametry

Návraty

Promise<TransportConfigured>

setOptions(DeviceClientOptions, Callback<TransportConfigured>)

Předá možnosti objektu ModuleClient , které lze použít ke konfiguraci přenosu.

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

Parametry

done

Callback<TransportConfigured>

Volitelné zpětné volání pro volání po nastavení možností.

Podrobnosti zděděných metod

abandon(Message)

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

Parametry

message
Message

Návraty

Promise<MessageAbandoned>

Zděděno z InternalClient.abandon

abandon(Message, Callback<MessageAbandoned>)

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

Parametry

message
Message
abandonCallback

Callback<MessageAbandoned>

Zděděno z InternalClient.abandon

addAbortListener(AbortSignal, (event: Event) => void)

Naslouchá jednou abort události na zadaném signal.

abort Naslouchání události na signálech přerušení je nebezpečné a může vést k úniku prostředků, protože jiná třetí strana se signálem může volat e.stopImmediatePropagation(). Bohužel Node.js to nemůže změnit, protože by to bylo porušením webového standardu. Původní rozhraní API navíc umožňuje snadno zapomenout odebrat naslouchací procesy.

Toto rozhraní API umožňuje bezpečně používat AbortSignals v rozhraních Node.js API tím, že tyto dva problémy řeší nasloucháním události, která stopImmediatePropagation nebrání spuštění naslouchacího procesu.

Vrátí jednorázový, aby bylo možné ho snadněji odhlásit.

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

Parametry

signal

AbortSignal

resource

(event: Event) => void

Návraty

Disposable

Jednorázový, který odebere naslouchací abort proces.

Zděděno z InternalClient.addAbortListener

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

Alias pro emitter.on(eventName, listener).

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z InternalClient.addListener

complete(Message)

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

Parametry

message
Message

Návraty

Promise<MessageCompleted>

Zděděno z InternalClient.complete

complete(Message, Callback<MessageCompleted>)

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

Parametry

message
Message
completeCallback

Callback<MessageCompleted>

Zděděno z InternalClient.complete

emit<K>(string | symbol, AnyRest)

Synchronně volá všechny naslouchací procesy zaregistrované pro událost s názvemeventName v pořadí, v jakém byly zaregistrovány, a předávají jim zadané argumenty.

Vrátí, true pokud událost měla naslouchací procesy, false jinak.

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

Parametry

eventName

string | symbol

args

AnyRest

Návraty

boolean

Zděděno z InternalClient.emit

eventNames()

Vrátí pole se seznamem událostí, pro které má emitor zaregistrované naslouchací procesy. Hodnoty v poli jsou řetězce nebo Symbols.

import { EventEmitter } from 'node:events';

const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});

const sym = Symbol('symbol');
myEE.on(sym, () => {});

console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]

Návraty

(string | symbol)[]

Zděděno z InternalClient.eventNames

getEventListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget, string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName.

Pro EventEmitters se to chová úplně stejně jako volání .listeners na emitoru.

Pro EventTargets je to jediný způsob, jak získat naslouchací procesy událostí pro cíl události. To je užitečné pro účely ladění a diagnostiky.

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> | _DOMEventTarget, name: string | symbol): Function[]

Parametry

emitter

EventEmitter<DefaultEventMap> | _DOMEventTarget

name

string | symbol

Návraty

Function[]

Zděděno z InternalClient.getEventListeners

getMaxListeners()

Vrátí aktuální maximální hodnotu naslouchacího EventEmitter procesu, která je nastavena emitter.setMaxListeners(n) nebo ve výchozím nastavení defaultMaxListeners.

function getMaxListeners(): number

Návraty

number

Zděděno z InternalClient.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)

Vrátí aktuálně nastavený maximální počet naslouchacích procesů.

Pro EventEmitters se to chová úplně stejně jako volání .getMaxListeners na emitoru.

Pro EventTargets je to jediný způsob, jak získat maximální počet naslouchacích procesů událostí pro cíl události. Pokud počet obslužných rutin událostí v jednom eventTargetu překročí maximální hodnotu, eventTarget vytiskne upozornění.

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> | _DOMEventTarget): number

Parametry

emitter

EventEmitter<DefaultEventMap> | _DOMEventTarget

Návraty

number

Zděděno z InternalClient.getMaxListeners

getTwin()

function getTwin(): Promise<Twin>

Návraty

Promise<Twin>

Zděděno z InternalClient.getTwin

getTwin(Callback<Twin>)

function getTwin(done: Callback<Twin>)

Parametry

done

Callback<Twin>

Zděděno z InternalClient.getTwin

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Upozornění

Toto rozhraní API je teď zastaralé.

Since v3.2.0 - Use listenerCount instead.

Metoda třídy, která vrací počet naslouchacích procesů pro danou eventNamezaregistrovanou na daném emitterobjektu .

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

Parametry

emitter

EventEmitter<DefaultEventMap>

Emitor, který se má dotazovat

eventName

string | symbol

Název události

Návraty

number

Zděděno z InternalClient.listenerCount

listenerCount<K>(string | symbol, Function)

Vrátí počet naslouchacích procesů, které naslouchají události s názvem eventName. Pokud listener je k dispozici, vrátí, kolikrát je naslouchací proces nalezen v seznamu naslouchacích procesů události.

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

Parametry

eventName

string | symbol

Název události, pro které se naslouchá

listener

Function

Funkce obslužné rutiny události

Návraty

number

Zděděno z InternalClient.listenerCount

listeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem 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[]

Parametry

eventName

string | symbol

Návraty

Function[]

Zděděno z InternalClient.listeners

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

Alias pro emitter.removeListener().

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z 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

Vrátí hodnotu AsyncIterator , která iteruje eventName události. Vyvolá se, pokud vygeneruje EventEmitter'error'. Při ukončení smyčky odebere všechny naslouchací procesy. Vrácené value každou iterací je pole složené z vygenerovaných argumentů události.

Můžete AbortSignal použít k zrušení čekání na události:

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>

Parametry

emitter

EventEmitter<DefaultEventMap>

eventName

string

Název události, pro které se naslouchá

options

StaticEventEmitterOptions

Návraty

AsyncIterableIterator<any>

iteruje eventName události vygenerované emitter

Zděděno z InternalClient.on

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

listener Přidá funkci na konec pole naslouchacích procesů pro událost s názvem eventName. Neprovedou se žádné kontroly, aby se zjistilo, jestli listener už byl přidán. Více volání předávajících stejnou kombinaci eventNamea listener bude mít za listener následek přidání a volání vícekrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí volají v pořadí, v jakém jsou přidány. Metoduemitter.prependListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacího procesu.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z InternalClient.on

once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Promise Vytvoří, který je splněn, když vygeneruje EventEmitter danou událost nebo která je odmítnuta, pokud EventEmitter generuje 'error' během čekání. Přeloží Promise se polem všech argumentů vygenerovaných do dané události.

Tato metoda je záměrně obecná a pracuje s rozhraním EventTarget webové platformy, které nemá žádnou zvláštní'error' sémantiku událostí a neposlouchá 'error' událost.

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);
}

Speciální zpracování 'error' události se používá pouze v případě, že events.once()se používá k čekání na jinou událost. Pokud events.once() se používá k čekání naerror' samotnou událost, považuje se za jakýkoli jiný druh události bez zvláštního zpracování:

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

Můžete AbortSignal použít k zrušení čekání na událost:

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

Parametry

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

Návraty

Promise<any[]>

Zděděno z InternalClient.once

once(_DOMEventTarget, string, StaticEventEmitterOptions)

static function once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>

Parametry

emitter

_DOMEventTarget

eventName

string

options

StaticEventEmitterOptions

Návraty

Promise<any[]>

Zděděno z InternalClient.once

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

Přidá jednorázovoulistener funkci pro událost s názvem eventName. Při příští eventName aktivaci se tento naslouchací proces odebere a pak se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

Ve výchozím nastavení se naslouchací procesy událostí volají v pořadí, v jakém jsou přidány. Metoduemitter.prependOnceListener() lze použít jako alternativu k přidání naslouchacího procesu událostí na začátek pole naslouchacího procesu.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z InternalClient.once

open()

function open(): Promise<Connected>

Návraty

Promise<Connected>

Zděděno z InternalClient.open

open(Callback<Connected>)

function open(openCallback: Callback<Connected>)

Parametry

openCallback

Callback<Connected>

Zděděno z InternalClient.open

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

listener Přidá funkci na začátek pole naslouchacích procesů pro událost s názvem eventName. Neprovedou se žádné kontroly, aby se zjistilo, jestli listener už byl přidán. Více volání předávajících stejnou kombinaci eventNamea listener bude mít za listener následek přidání a volání vícekrát.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z InternalClient.prependListener

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

Přidá jednorázovoulistener funkci pro událost s názvem eventName na začátek pole naslouchacích procesů. Při příštím eventName aktivaci se tento naslouchací proces odebere a pak se vyvolá.

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

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z InternalClient.prependOnceListener

rawListeners<K>(string | symbol)

Vrátí kopii pole naslouchacích procesů pro událost s názvem eventName, včetně všech obálky (například těch, které vytvořil )..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[]

Parametry

eventName

string | symbol

Návraty

Function[]

Zděděno z InternalClient.rawListeners

reject(Message)

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

Parametry

message
Message

Návraty

Promise<MessageRejected>

Zděděno z InternalClient.reject

reject(Message, Callback<MessageRejected>)

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

Parametry

message
Message
rejectCallback

Callback<MessageRejected>

Zděděno z InternalClient.reject

removeAllListeners(string | symbol)

Odebere všechny naslouchací procesy nebo naslouchací procesy zadaného eventNameobjektu .

Je špatným postupem odebrat naslouchací procesy přidané jinde v kódu, zejména pokud EventEmitter instanci vytvořila jiná komponenta nebo modul (např. sokety nebo datové proudy souborů).

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

Návraty

Zděděno z InternalClient.removeAllListeners

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

Odebere zadaný listener objekt z pole naslouchacího procesu pro událost s názvemeventName.

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

removeListener() odebere z pole naslouchacího procesu maximálně jednu instanci naslouchacího procesu. Pokud byl některý jeden naslouchací proces přidán vícekrát do pole naslouchacího procesu pro zadaný eventName, removeListener() musí být volána vícekrát, aby se každá instance odebrala.

Jakmile je událost vygenerovaná, všechny naslouchací procesy připojené k ní v době generování jsou volány v pořadí. To znamená, že všechnaremoveListener() volání nebo removeAllListeners()po vygenerování a před dokončením posledního naslouchacího procesu je neodeberou zemit() probíhajících. Následující události se chovají podle očekávání.

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

Vzhledem k tomu, že se naslouchací procesy spravují pomocí interního pole, toto volání změní indexy pozic libovolného naslouchacího procesu zaregistrovaného po odebrání naslouchacího procesu. To nebude mít vliv na pořadí, ve kterém jsou volána naslouchací procesy, ale znamená to, že všechny kopie pole naslouchacího procesu vrácené metodou emitter.listeners() budou muset být znovu vytvořena.

Pokud je jedna funkce přidána jako obslužná rutina vícekrát pro jednu událost (jako v následujícím příkladu), removeListener() odebere se naposledy přidaná instance. V příkladu once('ping')je naslouchací proces odebrán:

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');

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z InternalClient.removeListener

sendEvent(Message)

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

Parametry

message
Message

Návraty

Promise<MessageEnqueued>

Zděděno z InternalClient.sendEvent

sendEvent(Message, Callback<MessageEnqueued>)

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

Parametry

message
Message
sendEventCallback

Callback<MessageEnqueued>

Zděděno z InternalClient.sendEvent

sendEventBatch(Message[])

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

Parametry

messages

Message[]

Návraty

Promise<MessageEnqueued>

Zděděno z InternalClient.sendEventBatch

sendEventBatch(Message[], Callback<MessageEnqueued>)

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

Parametry

messages

Message[]

sendEventBatchCallback

Callback<MessageEnqueued>

Zděděno z InternalClient.sendEventBatch

setMaxListeners(number)

Ve výchozím nastavení EventEmitters zobrazí upozornění, pokud je pro konkrétní událost přidáno více naslouchacích 10 procesů. Toto je užitečné výchozí nastavení, které pomáhá najít nevrácenou paměť. Metoda emitter.setMaxListeners() umožňuje úpravu limitu pro tuto konkrétní EventEmitter instanci. Hodnota může být nastavena naInfinity (nebo 0) a označuje neomezený počet naslouchacích procesů.

Vrátí odkaz na EventEmitter, aby volání bylo možné zřetězený.

function setMaxListeners(n: number): ModuleClient

Parametry

n

number

Návraty

Zděděno z InternalClient.setMaxListeners

setMaxListeners(number, (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])

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

Parametry

n

number

Nezáporné číslo. Maximální počet naslouchacích procesů na EventTarget událost.

eventTargets

(EventEmitter<DefaultEventMap> | _DOMEventTarget)[]

Zděděno z InternalClient.setMaxListeners

setRetryPolicy(RetryPolicy)

Nastaví zásady opakování používané klientem pro všechny operace. Výchozí hodnota je ExponentialBackoffWithJitter.

function setRetryPolicy(policy: RetryPolicy)

Parametry

policy

RetryPolicy

{RetryPolicy} Zásady opakování, které by se měly použít pro všechny budoucí operace.

Zděděno z InternalClient.setRetryPolicy

setTransportOptions(any)

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

Parametry

options

any

Návraty

Promise<TransportConfigured>

Zděděno z InternalClient.setTransportOptions

setTransportOptions(any, Callback<TransportConfigured>)

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

Parametry

options

any

done

Callback<TransportConfigured>

Zděděno z InternalClient.setTransportOptions

updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)

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

Parametry

sharedAccessSignature

string

updateSasCallback

Callback<SharedAccessSignatureUpdated>

Zděděno z InternalClient.updateSharedAccessSignature

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

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

Parametry

error

Error

event

string | symbol

args

AnyRest

Zděděno z InternalClient.__@captureRejectionSymbol@138