Sdílet prostřednictvím


Client class

Klient služby IoT Hub se používá ke komunikaci se zařízeními prostřednictvím služby Azure IoT Hub. Umožňuje uživateli sady SDK:

  • odesílání z cloudu do zařízení (označované také jako příkazy) do zařízení: Příkazy se ve službě IoT Hub zasílají do fronty a doručují asynchronně, jenom když je zařízení připojené. Na jedno zařízení je možné zařadit do fronty pouze 50 příkazů.
  • vyvolání přímých metod na zařízeních (které budou fungovat jenom v případě, že je zařízení aktuálně připojené: jedná se o synchronní způsob komunikace se zařízením)
  • poslouchejte zprávy zpětné vazby odeslané zařízeními pro předchozí příkazy.
  • naslouchání oznámením o nahrávání souborů ze zařízení.

Uživatelé by měli vytvořit nové Client instance voláním jedné z metod továrny zConnectionString nebo zSharedAccessSignature, aby vytvořili klienta služby IoT Hub.

Extends

EventEmitter

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.defaultMaxListeners můžete použít vlastnost . Pokud tato hodnota není kladné číslo, RangeError je 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 všechny 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(IncomingMessageCallback<Disconnected>)

Ukončí připojení ke službě IoT Hub.

fromConnectionString(string, TransportCtor)

Vytvoří klienta služby IoT Hub z daného připojovacího řetězce pomocí výchozího přenosu (Amqp) nebo z druhého argumentu.

fromSharedAccessSignature(string, TransportCtor)

Vytvoří klienta služby IoT Hub z daného sdíleného přístupového podpisu pomocí výchozího přenosu (Amqp) nebo z druhého argumentu.

fromTokenCredential(string, TokenCredential, TransportCtor)

Vytvoří klienta služby IoT Hub z daného tokenu AzureCredential pomocí výchozího přenosu (Amqp) nebo z toho, který je zadaný v druhém argumentu.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Vrátí objekt AmqpReceiver, který generuje události při přijetí nových zpráv zpětné vazby klientem.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Vrátí objekt AmqpReceiver, který generuje události, když klient obdrží oznámení o nahrání nového souboru.

invokeDeviceMethod(string, DeviceMethodParams)
invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Vyvolá metodu na konkrétním zařízení nebo modulu.

invokeDeviceMethod(string, string, DeviceMethodParams)
invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)
open()
open(IncomingMessageCallback<Connected>)

Otevře připojení k centru IoT.

send(string, Message | BufferConvertible)
send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Odešle zprávu do zařízení.

setRetryPolicy(RetryPolicy)

Nastavte zásadu používanou klientem k opakování síťových operací.

Zděděné metody

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

emit<K>(string | symbol, AnyRest)

Synchronně volá každý z naslouchacích procesů zaregistrovaných pro událost s názvem eventNamev pořadí, v jakém byly zaregistrovány, a předá každému z nich 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> | EventTarget, 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> | EventTarget)

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

Metoda třídy, která vrací počet naslouchacích procesů pro danou eventName zaregistrovanou 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 | symbol, 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(EventTarget, string, StaticEventEmitterOptions)
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 eventName a 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. Metodu emitter.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, Pick<StaticEventEmitterOptions, "signal">)

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(EventTarget, 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. Metodu emitter.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
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 eventName a 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');
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ázvem eventName.

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šechna removeListener() 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ý.

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 na Infinity (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> | EventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';

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

setMaxListeners(5, target, emitter);
[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 EventEmitter.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 EventEmitter.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.defaultMaxListeners můžete použít vlastnost . Pokud tato hodnota není kladné číslo, RangeError je 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 všechny 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 EventEmitter.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 EventEmitter.errorMonitor

Podrobnosti metody

close()

function close(): Promise<ResultWithIncomingMessage<Disconnected>>

Návraty

Promise<ResultWithIncomingMessage<Disconnected>>

close(IncomingMessageCallback<Disconnected>)

Ukončí připojení ke službě IoT Hub.

function close(done?: IncomingMessageCallback<Disconnected>)

Parametry

done

IncomingMessageCallback<Disconnected>

Volitelná funkce, která se má volat po dokončení operace. done se předá argument objektu Error, který bude mít hodnotu null, pokud se operace úspěšně dokončila.

fromConnectionString(string, TransportCtor)

Vytvoří klienta služby IoT Hub z daného připojovacího řetězce pomocí výchozího přenosu (Amqp) nebo z druhého argumentu.

static function fromConnectionString(connStr: string, transportCtor?: TransportCtor): Client

Parametry

connStr

string

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

transportCtor
TransportCtor

Návraty

fromSharedAccessSignature(string, TransportCtor)

Vytvoří klienta služby IoT Hub z daného sdíleného přístupového podpisu pomocí výchozího přenosu (Amqp) nebo z druhého argumentu.

static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor?: TransportCtor): Client

Parametry

sharedAccessSignature

string

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

transportCtor
TransportCtor

Návraty

fromTokenCredential(string, TokenCredential, TransportCtor)

Vytvoří klienta služby IoT Hub z daného tokenu AzureCredential pomocí výchozího přenosu (Amqp) nebo z toho, který je zadaný v druhém argumentu.

static function fromTokenCredential(hostName: string, tokenCredential: TokenCredential, transportCtor?: TransportCtor): Client

Parametry

hostName

string

Název hostitele služby Azure.

tokenCredential
TokenCredential

Přihlašovací údaje tokenu Azure použité k ověřování ve službě Azure

transportCtor
TransportCtor

Návraty

getFeedbackReceiver()

function getFeedbackReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Návraty

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Vrátí objekt AmqpReceiver, který generuje události při přijetí nových zpráv zpětné vazby klientem.

function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parametry

done

IncomingMessageCallback<ServiceReceiver>

Volitelná funkce, která se má volat po dokončení operace. done bude volána se dvěma argumenty: objekt Error (může mít hodnotu null) a objekt AmqpReceiver.

getFileNotificationReceiver()

function getFileNotificationReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Návraty

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Vrátí objekt AmqpReceiver, který generuje události, když klient obdrží oznámení o nahrání nového souboru.

function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parametry

done

IncomingMessageCallback<ServiceReceiver>

Volitelná funkce, která se má volat po dokončení operace. done bude volána se dvěma argumenty: objekt Error (může mít hodnotu null) a objekt AmqpReceiver.

invokeDeviceMethod(string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parametry

deviceId

string

methodParams
DeviceMethodParams

Návraty

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Vyvolá metodu na konkrétním zařízení nebo modulu.

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>)

Parametry

deviceId

string

Identifikátor existující identity zařízení.

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

Volitelné zpětné volání pro volání s výsledkem spuštění metody.

invokeDeviceMethod(string, string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parametry

deviceId

string

moduleId

string

methodParams
DeviceMethodParams

Návraty

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams, done: IncomingMessageCallback<any>)

Parametry

deviceId

string

moduleId

string

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

open()

function open(): Promise<ResultWithIncomingMessage<Connected>>

Návraty

Promise<ResultWithIncomingMessage<Connected>>

open(IncomingMessageCallback<Connected>)

Otevře připojení k centru IoT.

function open(done?: IncomingMessageCallback<Connected>)

Parametry

done

IncomingMessageCallback<Connected>

Volitelná funkce, která se má volat po dokončení operace. done se předá argument objektu Error, který bude mít hodnotu null, pokud se operace úspěšně dokončila.

send(string, Message | BufferConvertible)

function send(deviceId: string, message: Message | BufferConvertible): Promise<ResultWithIncomingMessage<MessageEnqueued>>

Parametry

deviceId

string

message

Message | BufferConvertible

Návraty

Promise<ResultWithIncomingMessage<MessageEnqueued>>

send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Odešle zprávu do zařízení.

function send(deviceId: string, message: Message | BufferConvertible, done?: IncomingMessageCallback<MessageEnqueued>)

Parametry

deviceId

string

Identifikátor existující identity zařízení.

message

Message | BufferConvertible

Text zprávy, která se má odeslat do zařízení. Pokud message není typu Zpráva, převede se.

done

IncomingMessageCallback<MessageEnqueued>

Volitelná funkce, která se má volat po dokončení operace. done bude volána se dvěma argumenty: objekt Error (může mít hodnotu null) a objekt odpovědi specifický pro přenos, který je užitečný pro protokolování nebo ladění.

setRetryPolicy(RetryPolicy)

Nastavte zásadu používanou klientem k opakování síťových operací.

function setRetryPolicy(policy: RetryPolicy)

Parametry

policy

RetryPolicy

zásady používané k opakování operací (např. otevření, odeslání atd.). Sada SDK se dodává se 2 předdefinované zásady: ExponentialBackoffWithJitter (výchozí) a NoRetry (pro zrušení jakékoli formy opakování). Uživatel může také předat vlastní objekt, pokud implementuje 2 metody: - shouldRetry(err: Error): boolean : označuje, jestli se má operace opakovat na základě typu chyby - nextRetryTimeout(retryCount: number, throttled: boolean): number : vrátí dobu čekání (v milisekundách) před opakovaným pokusem na základě předchozího počtu pokusů (retryCount) a skutečnosti, že chyba je nebo není chyba omezování.

Podrobnosti zděděných metod

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 EventEmitter.addAbortListener

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

Alias pro emitter.on(eventName, listener).

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Synchronně volá každý z naslouchacích procesů zaregistrovaných pro událost s názvem eventNamev pořadí, v jakém byly zaregistrovány, a předá každému z nich 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 EventEmitter.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 EventEmitter.eventNames

getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, 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> | EventTarget, name: string | symbol): Function[]

Parametry

emitter

EventEmitter<DefaultEventMap> | EventTarget

name

string | symbol

Návraty

Function[]

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

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

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

Parametry

emitter

EventEmitter<DefaultEventMap> | EventTarget

Návraty

number

Zděděno z EventEmitter.getMaxListeners

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 eventName zaregistrovanou 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 EventEmitter.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 EventEmitter.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 EventEmitter.listeners

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

Alias pro emitter.removeListener().

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

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z EventEmitter.off

on(EventEmitter<DefaultEventMap>, string | symbol, 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 | symbol, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>

Parametry

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

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

options

StaticEventEmitterOptions

Návraty

AsyncIterableIterator<any>

Iteruje AsyncIteratoreventName události vygenerované objektem emitter

Zděděno z EventEmitter.on

on(EventTarget, string, StaticEventEmitterOptions)

static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>

Parametry

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

Návraty

AsyncIterableIterator<any>

Zděděno z EventEmitter.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 eventName a 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. Metodu emitter.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): Client

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z EventEmitter.on

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

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?: Pick<StaticEventEmitterOptions, "signal">): Promise<any[]>

Parametry

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

Pick<StaticEventEmitterOptions, "signal">

Návraty

Promise<any[]>

Zděděno z EventEmitter.once

once(EventTarget, string, StaticEventEmitterOptions)

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

Parametry

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

Návraty

Promise<any[]>

Zděděno z EventEmitter.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. Metodu emitter.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): Client

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z EventEmitter.once

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 eventName a 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): Client

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

Zděděno z EventEmitter.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): Client

Parametry

eventName

string | symbol

Název události.

listener

(args: any[]) => void

Funkce zpětného volání

Návraty

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

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

Parametry

eventName

string | symbol

Návraty

Zděděno z EventEmitter.removeAllListeners

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

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

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šechna removeListener() 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): Client

Parametry

eventName

string | symbol

listener

(args: any[]) => void

Návraty

Zděděno z EventEmitter.removeListener

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 na Infinity (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): Client

Parametry

n

number

Návraty

Zděděno z EventEmitter.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)[])

Parametry

n

number

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

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

Zděděno z EventEmitter.setMaxListeners

[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 EventEmitter.__@captureRejectionSymbol@122