Client class

デバイスを Azure IoT ハブに接続するために使用するデバイス クライアントをIoT Hubします。

SDK のユーザーは、ファクトリ メソッド (fromConnectionString または fromSharedAccessSignature) のいずれかを呼び出して、IoT Hubデバイス クライアントを作成する必要があります。

Extends

InternalClient

コンストラクター

Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)

継承されたプロパティ

captureRejections

値: boolean

すべての新しいEventEmitterオブジェクトの既定captureRejectionsのオプションを変更します。

captureRejectionSymbol

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

カスタム rejection handlerを記述する方法を参照してください。

defaultMaxListeners

既定では、任意の 1 つのイベントに対して最大の 10 リスナーを登録できます。 この制限は、 メソッドを使用して個々 EventEmitter のインスタンスに emitter.setMaxListeners(n) 対して変更できます。 すべてのEventEmitterインスタンスの既定値を変更するには、 プロパティをevents.defaultMaxListeners使用できます。 この値が正の数でない場合は、 RangeError がスローされます。

を設定 events.defaultMaxListeners するときは注意してください。変更は、変更が行われる前に作成されたものも含め、 すべてのEventEmitter インスタンスに影響するためです。 ただし、 の呼び出し emitter.setMaxListeners(n) は 引き続き よりも events.defaultMaxListeners優先されます。

これはハード制限ではありません。 インスタンスにより EventEmitter 多くのリスナーを追加できますが、"EventEmitter メモリ リークの可能性" が検出されたことを示すトレース警告が stderr に出力されます。 任意の単一 EventEmitterの では、 emitter.getMaxListeners() メソッドと emitter.setMaxListeners() メソッドを使用して、この警告を一時的に回避できます。

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

--trace-warningsコマンド ライン フラグを使用して、このような警告のスタック トレースを表示できます。

出力された警告は、 を使用してprocess.on('warning')検査でき、イベント エミッタ インスタンス、イベントの名前、アタッチされたリスナーの数をそれぞれ参照する、追加emittertypecountの 、、および プロパティを持つことになります。 その name プロパティは に 'MaxListenersExceededWarning'設定されます。

errorMonitor

このシンボルは、監視 'error' イベントのみのリスナーをインストールするために使用されます。 このシンボルを使用してインストールされたリスナーは、通常 'error' のリスナーが呼び出される前に呼び出されます。

このシンボルを使用してリスナーをインストールしても、イベントが生成された後 'error' の動作は変更されません。 そのため、通常 'error' のリスナーがインストールされていない場合でも、プロセスはクラッシュします。

メソッド

close()
close(Callback<Disconnected>)

トランスポート接続を閉じ、クライアント リソースを破棄します。

注: このメソッドを呼び出した後、Client オブジェクトを再利用することはできません。

fromAuthenticationProvider(AuthenticationProvider, any)

指定した認証方法から、指定したトランスポートの種類を使用して、IoT Hubデバイス クライアントを作成します。

fromConnectionString(string, any)

指定したトランスポートの種類を使用して、指定した接続文字列からIoT Hubデバイス クライアントを作成します。

fromSharedAccessSignature(string, any)

指定したトランスポートの種類を使用して、指定された共有アクセス署名からIoT Hubデバイス クライアントを作成します。

getBlobSharedAccessSignature(string)
getBlobSharedAccessSignature(string, Callback<UploadParams>)

getBlobSharedAccessSignature、リンクされたストレージ アカウント SAS トークンをIoT Hubから取得します。

notifyBlobUploadStatus(string, boolean, number, string)
notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)

メソッドはnotifyBlobUploadStatus、BLOB アップロードの結果IoT Hub送信します。

onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

という名前 methodNameのメソッドのコールバックを登録します。

setOptions(DeviceClientOptions)
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
uploadToBlob(string, Stream, number)
uploadToBlob(string, Stream, number, ErrorCallback)

メソッドは uploadToBlob 、ストリームを BLOB にアップロードします。

継承されたメソッド

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

指定signalされた でイベントを abort 1 回リッスンします。

中止シグナルでイベントを abort リッスンすることは安全ではなく、シグナルを持つ別のサード パーティが を呼び出 e.stopImmediatePropagation()すことができるため、リソース リークが発生する可能性があります。 残念ながら、Node.js は Web 標準に違反するため、これを変更できません。 また、元の API を使用すると、リスナーの削除を忘れやすくなります。

この API では、リスナーの実行を妨げるようなイベントstopImmediatePropagationをリッスンすることで、これらの 2 つの問題を解決することで、Node.js API で を安全に使用AbortSignalできます。

より簡単に登録解除できるように、破棄可能な を返します。

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)

emitter.on(eventName, listener)エイリアス。

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

という名前 eventNameのイベントに登録されている各リスナーを、登録された順序で同期的に呼び出し、指定された引数をそれぞれに渡します。

イベントに true リスナーがある場合は を返します。それ以外の場合は を返します false

import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();

// First listener
myEmitter.on('event', function firstListener() {
  console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
  const parameters = args.join(', ');
  console.log(`event with parameters ${parameters} in third listener`);
});

console.log(myEmitter.listeners('event'));

myEmitter.emit('event', 1, 2, 3, 4, 5);

// Prints:
// [
//   [Function: firstListener],
//   [Function: secondListener],
//   [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
eventNames()

エミッタにリスナーが登録されているイベントを一覧表示する配列を返します。 配列内の値は文字列または Symbol文字列です。

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)

という名前 eventNameのイベントのリスナーの配列のコピーを返します。

s の場合 EventEmitter、これはエミッタで を呼び出す .listeners のとまったく同じように動作します。

の場合 EventTarget、これはイベント ターゲットのイベント リスナーを取得する唯一の方法です。 これは、デバッグと診断の目的で役立ちます。

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

によってemitter.setMaxListeners(n)設定されるか、既定値が defaultMaxListeners に設定されている の現在の最大リスナー値EventEmitterを返します。

getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)

現在設定されているリスナーの最大量を返します。

s の場合 EventEmitter、これはエミッタで を呼び出す .getMaxListeners のとまったく同じように動作します。

では EventTarget、これはイベント ターゲットの最大イベント リスナーを取得する唯一の方法です。 1 つの EventTarget のイベント ハンドラーの数が最大セットを超えた場合、EventTarget は警告を出力します。

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
getTwin()
getTwin(Callback<Twin>)
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

指定した に登録されている、指定 eventName された emitterのリスナーの数を返すクラス メソッド。

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

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

という名前 eventNameのイベントをリッスンしているリスナーの数を返します。 が指定されている場合 listener 、イベントのリスナーの一覧でリスナーが見つかった回数が返されます。

listeners<K>(string | symbol)

という名前 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)

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

イベントを反復処理する を AsyncIterator 返します eventName 。 が を出力'error'すると、 がEventEmitterスローされます。 ループを終了すると、すべてのリスナーが削除されます。 各イテレーションによって返される は value 、出力されたイベント引数で構成される配列です。

AbortSignal 使用して、イベントの待機を取り消すことができます。

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());
on<K>(string | symbol, (args: any[]) => void)

という名前eventNamelistenerイベントのリスナー配列の末尾に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

既定では、イベント リスナーは追加された順序で呼び出されます。 メソッドは emitter.prependListener() 、リスナー配列の先頭にイベント リスナーを追加する代わりに使用できます。

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Promiseが指定されたイベントをEventEmitter出力したときに満たされるか、待機中に が出力'error'された場合に拒否される をEventEmitter作成します。 は Promise 、指定されたイベントに出力されるすべての引数の配列で解決されます。

このメソッドは意図的にジェネリックであり、特別な'error'イベント セマンティクスがなく、イベントをリッスンしない Web プラットフォーム EventTarget インターフェイスで'error'動作します。

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

イベントの特別な処理は、 が別の 'error' イベントを待機するために使用される場合 events.once() にのみ使用されます。 を使用して 'error' イベント自体を待機する場合events.once()は、特別な処理を行わずに他の種類のイベントとして扱われます。

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

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

AbortSignal 使用して、イベントの待機を取り消すことができます。

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

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
once(_DOMEventTarget, string, StaticEventEmitterOptions)
once<K>(string | symbol, (args: any[]) => void)

という名前eventNameのイベントの 1 回listener限りの関数を追加します。 次回トリガーされると eventName 、このリスナーが削除され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

既定では、イベント リスナーは追加された順序で呼び出されます。 メソッドは emitter.prependOnceListener() 、リスナー配列の先頭にイベント リスナーを追加する代わりに使用できます。

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
open()
open(Callback<Connected>)
prependListener<K>(string | symbol, (args: any[]) => void)

という名前eventNamelistenerイベントのリスナー配列の先頭に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

という名前eventNameのイベントの 1 回listener限りの関数をリスナー配列の先頭に追加します。 次回 eventName トリガーされると、このリスナーが削除され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

rawListeners<K>(string | symbol)

という名前 eventNameのイベントのリスナーの配列のコピーを返します。これには、ラッパー (によって .once()作成されたものなど) も含まれます。

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));

// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];

// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();

// Logs "log once" to the console and removes the listener
logFnWrapper();

emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');

// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
reject(Message)
reject(Message, Callback<MessageRejected>)
removeAllListeners(string | symbol)

すべてのリスナー、または指定した のリスナーを削除します eventName

特に、インスタンスが他のコンポーネントまたはモジュール (ソケットやファイル ストリームなど) によって作成された場合 EventEmitter に、コード内の他の場所に追加されたリスナーを削除するのは不適切な方法です。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

という名前eventNameのイベントのリスナー配列から指定された listener を削除します。

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

removeListener() では、リスナー配列からリスナーのインスタンスが最大で 1 つ削除されます。 指定した eventNameのリスナー配列に 1 つのリスナーが複数回追加されている場合は、 removeListener() 各インスタンスを削除するために複数回呼び出す必要があります。

イベントが生成されると、生成時にそれにアタッチされたすべてのリスナーが順番に呼び出されます。 これは、出力と最後のremoveListener()リスナーの実行が完了する前に または removeAllListeners() を呼び出しても、進行中からemit()削除されないことを意味します。 後続のイベントは想定どおりに動作します。

import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();

const callbackA = () => {
  console.log('A');
  myEmitter.removeListener('event', callbackB);
};

const callbackB = () => {
  console.log('B');
};

myEmitter.on('event', callbackA);

myEmitter.on('event', callbackB);

// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
//   A
//   B

// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
//   A

リスナーは内部配列を使用して管理されるため、これを呼び出すと、リスナーが削除された に登録されたすべてのリスナーの位置インデックスが変更されます。 これはリスナーが呼び出される順序には影響しませんが、メソッドによって emitter.listeners() 返されるリスナー配列のコピーを再作成する必要があることを意味します。

(次の例のように) 1 つのイベントに対して 1 つの関数がハンドラーとして複数回追加されると、 removeListener() 最後に追加されたインスタンスが削除されます。 この例では、 once('ping') リスナーは削除されます。

import { EventEmitter } from 'node:events';
const ee = new EventEmitter();

function pong() {
  console.log('pong');
}

ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);

ee.emit('ping');
ee.emit('ping');

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

既定 EventEmitterでは、 は、特定のイベントに対して複数のリスナーが追加された場合 10 に警告を出力します。 これは、メモリ リークの検出に役立つ便利な既定値です。 メソッドを emitter.setMaxListeners() 使用すると、この特定 EventEmitter のインスタンスの制限を変更できます。 リスナーの数を無制限に Infinity 示すには、値を (または 0) に設定できます。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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)

クライアントがすべての操作で使用する再試行ポリシーを設定します。 既定値は ExponentialBackoffWithJitter です

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

コンストラクターの詳細

Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)

new Client(transport: DeviceTransport, connStr?: string, blobUploadClient?: BlobUploadClient, fileUploadApi?: FileUploadInterface)

パラメーター

transport
DeviceTransport

トランスポート オブジェクトに必要なインターフェイス ( Http など) を実装する オブジェクト。

connStr

string

接続文字列 (省略可能: 指定しない場合は、SharedAccessSignature トークンを直接設定するために updateSharedAccessSignature を呼び出す必要があります)。

blobUploadClient

BlobUploadClient

ストリームを BLOB にアップロードできるオブジェクト。

fileUploadApi

FileUploadInterface

Blob Storage 関連のアクションのIoT Hubとの通信に使用される オブジェクト。

継承されたプロパティの詳細

captureRejections

値: boolean

すべての新しいEventEmitterオブジェクトの既定captureRejectionsのオプションを変更します。

static captureRejections: boolean

プロパティ値

boolean

継承元 InternalClient.captureRejections

captureRejectionSymbol

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

カスタム rejection handlerを記述する方法を参照してください。

static captureRejectionSymbol: typeof captureRejectionSymbol

プロパティ値

typeof captureRejectionSymbol

継承元 InternalClient.captureRejectionSymbol

defaultMaxListeners

既定では、任意の 1 つのイベントに対して最大の 10 リスナーを登録できます。 この制限は、 メソッドを使用して個々 EventEmitter のインスタンスに emitter.setMaxListeners(n) 対して変更できます。 すべてのEventEmitterインスタンスの既定値を変更するには、 プロパティをevents.defaultMaxListeners使用できます。 この値が正の数でない場合は、 RangeError がスローされます。

を設定 events.defaultMaxListeners するときは注意してください。変更は、変更が行われる前に作成されたものも含め、 すべてのEventEmitter インスタンスに影響するためです。 ただし、 の呼び出し emitter.setMaxListeners(n) は 引き続き よりも events.defaultMaxListeners優先されます。

これはハード制限ではありません。 インスタンスにより EventEmitter 多くのリスナーを追加できますが、"EventEmitter メモリ リークの可能性" が検出されたことを示すトレース警告が stderr に出力されます。 任意の単一 EventEmitterの では、 emitter.getMaxListeners() メソッドと emitter.setMaxListeners() メソッドを使用して、この警告を一時的に回避できます。

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
  // do stuff
  emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});

--trace-warningsコマンド ライン フラグを使用して、このような警告のスタック トレースを表示できます。

出力された警告は、 を使用してprocess.on('warning')検査でき、イベント エミッタ インスタンス、イベントの名前、アタッチされたリスナーの数をそれぞれ参照する、追加emittertypecountの 、、および プロパティを持つことになります。 その name プロパティは に 'MaxListenersExceededWarning'設定されます。

static defaultMaxListeners: number

プロパティ値

number

継承元 InternalClient.defaultMaxListeners

errorMonitor

このシンボルは、監視 'error' イベントのみのリスナーをインストールするために使用されます。 このシンボルを使用してインストールされたリスナーは、通常 'error' のリスナーが呼び出される前に呼び出されます。

このシンボルを使用してリスナーをインストールしても、イベントが生成された後 'error' の動作は変更されません。 そのため、通常 'error' のリスナーがインストールされていない場合でも、プロセスはクラッシュします。

static errorMonitor: typeof errorMonitor

プロパティ値

typeof errorMonitor

継承元 InternalClient.errorMonitor

メソッドの詳細

close()

function close(): Promise<Disconnected>

戻り値

Promise<Disconnected>

close(Callback<Disconnected>)

トランスポート接続を閉じ、クライアント リソースを破棄します。

注: このメソッドを呼び出した後、Client オブジェクトを再利用することはできません。

function close(closeCallback?: Callback<Disconnected>)

パラメーター

closeCallback

Callback<Disconnected>

トランスポートが切断され、クライアントが閉じられた後に を呼び出す省略可能な関数。

fromAuthenticationProvider(AuthenticationProvider, any)

指定した認証方法から、指定したトランスポートの種類を使用して、IoT Hubデバイス クライアントを作成します。

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

パラメーター

authenticationProvider

AuthenticationProvider

IoT ハブの認証パラメーターを取得するために使用されるオブジェクト。

transportCtor

any

IoT ハブへの接続に使用されるトランスポート プロトコル。

戻り値

fromConnectionString(string, any)

指定したトランスポートの種類を使用して、指定した接続文字列からIoT Hubデバイス クライアントを作成します。

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

パラメーター

connStr

string

IoT ハブに対する "デバイス接続" アクセス許可をカプセル化する接続文字列。

transportCtor

any

トランスポート コンストラクター。

戻り値

fromSharedAccessSignature(string, any)

指定したトランスポートの種類を使用して、指定された共有アクセス署名からIoT Hubデバイス クライアントを作成します。

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

パラメーター

sharedAccessSignature

string

IoT ハブに対する "デバイス接続" アクセス許可をカプセル化する共有アクセス署名。

transportCtor

any

戻り値

getBlobSharedAccessSignature(string)

function getBlobSharedAccessSignature(blobName: string): Promise<UploadParams>

パラメーター

blobName

string

戻り値

Promise<UploadParams>

getBlobSharedAccessSignature(string, Callback<UploadParams>)

getBlobSharedAccessSignature、リンクされたストレージ アカウント SAS トークンをIoT Hubから取得します。

function getBlobSharedAccessSignature(blobName: string, callback?: Callback<UploadParams>)

パラメーター

blobName

string

ストリームのコンテンツと共に作成される BLOB に使用する名前。

callback

Callback<UploadParams>

アップロードが完了したときに呼び出すオプションのコールバック。

notifyBlobUploadStatus(string, boolean, number, string)

function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string): Promise<void>

パラメーター

correlationId

string

isSuccess

boolean

statusCode

number

statusDescription

string

戻り値

Promise<void>

notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)

メソッドはnotifyBlobUploadStatus、BLOB アップロードの結果IoT Hub送信します。

function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string, callback?: ErrorCallback)

パラメーター

correlationId

string

アップロード状態を特定の BLOB に関連付ける ID。 への呼び出し中に getBlobSharedAccessSignature生成されます。

isSuccess

boolean

ストレージ BLOB 操作の結果の成功または失敗の状態。

statusCode

number

ストレージ BLOB の結果に関連付けられている HTTP 状態コード。

statusDescription

string

HTTP 状態コードの説明。

callback

ErrorCallback

アップロードが完了したときに呼び出すオプションのコールバック。

onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

という名前 methodNameのメソッドのコールバックを登録します。

function onDeviceMethod(methodName: string, callback: (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)

パラメーター

methodName

string

コールバックによって処理されるメソッドの名前

callback

(request: DeviceMethodRequest, response: DeviceMethodResponse) => void

呼び出されるメソッドのメソッド要求が受信されるたびに呼び出 methodName される関数。

setOptions(DeviceClientOptions)

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

パラメーター

戻り値

Promise<TransportConfigured>

setOptions(DeviceClientOptions, Callback<TransportConfigured>)

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

パラメーター

done

Callback<TransportConfigured>

uploadToBlob(string, Stream, number)

function uploadToBlob(blobName: string, stream: Stream, streamLength: number): Promise<void>

パラメーター

blobName

string

stream

Stream

streamLength

number

戻り値

Promise<void>

uploadToBlob(string, Stream, number, ErrorCallback)

メソッドは uploadToBlob 、ストリームを BLOB にアップロードします。

function uploadToBlob(blobName: string, stream: Stream, streamLength: number, callback: ErrorCallback)

パラメーター

blobName

string

ストリームのコンテンツと共に作成される BLOB に使用する名前。

stream

Stream

BLOB にアップロードするデータ。

streamLength

number

BLOB にアップロードするデータのサイズ。

callback

ErrorCallback

継承済みメソッドの詳細

abandon(Message)

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

パラメーター

message
Message

戻り値

Promise<MessageAbandoned>

継承元 InternalClient.abandon

abandon(Message, Callback<MessageAbandoned>)

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

パラメーター

message
Message
abandonCallback

Callback<MessageAbandoned>

継承元 InternalClient.abandon

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

指定signalされた でイベントを abort 1 回リッスンします。

中止シグナルでイベントを abort リッスンすることは安全ではなく、シグナルを持つ別のサード パーティが を呼び出 e.stopImmediatePropagation()すことができるため、リソース リークが発生する可能性があります。 残念ながら、Node.js は Web 標準に違反するため、これを変更できません。 また、元の API を使用すると、リスナーの削除を忘れやすくなります。

この API では、リスナーの実行を妨げるようなイベントstopImmediatePropagationをリッスンすることで、これらの 2 つの問題を解決することで、Node.js API で を安全に使用AbortSignalできます。

より簡単に登録解除できるように、破棄可能な を返します。

import { addAbortListener } from 'node:events';

function example(signal) {
  let disposable;
  try {
    signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
    disposable = addAbortListener(signal, (e) => {
      // Do something when signal is aborted.
    });
  } finally {
    disposable?.[Symbol.dispose]();
  }
}
static function addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable

パラメーター

signal

AbortSignal

resource

(event: Event) => void

戻り値

Disposable

リスナーを削除する abort 破棄可能。

継承元 InternalClient.addAbortListener

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

emitter.on(eventName, listener)エイリアス。

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

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 InternalClient.addListener

complete(Message)

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

パラメーター

message
Message

戻り値

Promise<MessageCompleted>

継承元 InternalClient.complete

complete(Message, Callback<MessageCompleted>)

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

パラメーター

message
Message
completeCallback

Callback<MessageCompleted>

継承元 InternalClient.complete

emit<K>(string | symbol, AnyRest)

という名前 eventNameのイベントに登録されている各リスナーを、登録された順序で同期的に呼び出し、指定された引数をそれぞれに渡します。

イベントに true リスナーがある場合は を返します。それ以外の場合は を返します false

import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();

// First listener
myEmitter.on('event', function firstListener() {
  console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
  console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
  const parameters = args.join(', ');
  console.log(`event with parameters ${parameters} in third listener`);
});

console.log(myEmitter.listeners('event'));

myEmitter.emit('event', 1, 2, 3, 4, 5);

// Prints:
// [
//   [Function: firstListener],
//   [Function: secondListener],
//   [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
function emit<K>(eventName: string | symbol, args: AnyRest): boolean

パラメーター

eventName

string | symbol

args

AnyRest

戻り値

boolean

継承元 InternalClient.emit

eventNames()

エミッタにリスナーが登録されているイベントを一覧表示する配列を返します。 配列内の値は文字列または Symbol文字列です。

import { EventEmitter } from 'node:events';

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

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

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

戻り値

(string | symbol)[]

継承元 InternalClient.eventNames

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

という名前 eventNameのイベントのリスナーの配列のコピーを返します。

s の場合 EventEmitter、これはエミッタで を呼び出す .listeners のとまったく同じように動作します。

の場合 EventTarget、これはイベント ターゲットのイベント リスナーを取得する唯一の方法です。 これは、デバッグと診断の目的で役立ちます。

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

パラメーター

emitter

EventEmitter<DefaultEventMap> | _DOMEventTarget

name

string | symbol

戻り値

Function[]

継承元 InternalClient.getEventListeners

getMaxListeners()

によってemitter.setMaxListeners(n)設定されるか、既定値が defaultMaxListeners に設定されている の現在の最大リスナー値EventEmitterを返します。

function getMaxListeners(): number

戻り値

number

継承元 InternalClient.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)

現在設定されているリスナーの最大量を返します。

s の場合 EventEmitter、これはエミッタで を呼び出す .getMaxListeners のとまったく同じように動作します。

では EventTarget、これはイベント ターゲットの最大イベント リスナーを取得する唯一の方法です。 1 つの EventTarget のイベント ハンドラーの数が最大セットを超えた場合、EventTarget は警告を出力します。

import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';

{
  const ee = new EventEmitter();
  console.log(getMaxListeners(ee)); // 10
  setMaxListeners(11, ee);
  console.log(getMaxListeners(ee)); // 11
}
{
  const et = new EventTarget();
  console.log(getMaxListeners(et)); // 10
  setMaxListeners(11, et);
  console.log(getMaxListeners(et)); // 11
}
static function getMaxListeners(emitter: EventEmitter<DefaultEventMap> | _DOMEventTarget): number

パラメーター

emitter

EventEmitter<DefaultEventMap> | _DOMEventTarget

戻り値

number

継承元 InternalClient.getMaxListeners

getTwin()

function getTwin(): Promise<Twin>

戻り値

Promise<Twin>

継承元 InternalClient.getTwin

getTwin(Callback<Twin>)

function getTwin(done: Callback<Twin>)

パラメーター

done

Callback<Twin>

継承元 InternalClient.getTwin

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

警告

この API は非推奨になりました。

Since v3.2.0 - Use listenerCount instead.

指定した に登録されている、指定 eventName された emitterのリスナーの数を返すクラス メソッド。

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

const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
static function listenerCount(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol): number

パラメーター

emitter

EventEmitter<DefaultEventMap>

クエリを実行するエミッター

eventName

string | symbol

イベント名

戻り値

number

継承元 InternalClient.listenerCount

listenerCount<K>(string | symbol, Function)

という名前 eventNameのイベントをリッスンしているリスナーの数を返します。 が指定されている場合 listener 、イベントのリスナーの一覧でリスナーが見つかった回数が返されます。

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

パラメーター

eventName

string | symbol

リッスンするイベントの名前

listener

Function

イベント ハンドラー関数

戻り値

number

継承元 InternalClient.listenerCount

listeners<K>(string | symbol)

という名前 eventNameのイベントのリスナーの配列のコピーを返します。

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

パラメーター

eventName

string | symbol

戻り値

Function[]

継承元 InternalClient.listeners

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

emitter.removeListener()エイリアス。

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

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 InternalClient.off

on(EventEmitter<DefaultEventMap>, string, StaticEventEmitterOptions)

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

// Emit later on
process.nextTick(() => {
  ee.emit('foo', 'bar');
  ee.emit('foo', 42);
});

for await (const event of on(ee, 'foo')) {
  // The execution of this inner block is synchronous and it
  // processes one event at a time (even with await). Do not use
  // if concurrent execution is required.
  console.log(event); // prints ['bar'] [42]
}
// Unreachable here

イベントを反復処理する を AsyncIterator 返します eventName 。 が を出力'error'すると、 がEventEmitterスローされます。 ループを終了すると、すべてのリスナーが削除されます。 各イテレーションによって返される は value 、出力されたイベント引数で構成される配列です。

AbortSignal 使用して、イベントの待機を取り消すことができます。

import { on, EventEmitter } from 'node:events';
import process from 'node:process';

const ac = new AbortController();

(async () => {
  const ee = new EventEmitter();

  // Emit later on
  process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
  });

  for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
  }
  // Unreachable here
})();

process.nextTick(() => ac.abort());
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>

パラメーター

emitter

EventEmitter<DefaultEventMap>

eventName

string

リッスンするイベントの名前

options

StaticEventEmitterOptions

戻り値

AsyncIterableIterator<any>

AsyncIteratorによって生成されるイベントをeventName反復処理する 。emitter

継承元 InternalClient.on

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

という名前eventNamelistenerイベントのリスナー配列の末尾に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

既定では、イベント リスナーは追加された順序で呼び出されます。 メソッドは emitter.prependListener() 、リスナー配列の先頭にイベント リスナーを追加する代わりに使用できます。

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
function on<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 InternalClient.on

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

Promiseが指定されたイベントをEventEmitter出力したときに満たされるか、待機中に が出力'error'された場合に拒否される をEventEmitter作成します。 は Promise 、指定されたイベントに出力されるすべての引数の配列で解決されます。

このメソッドは意図的にジェネリックであり、特別な'error'イベント セマンティクスがなく、イベントをリッスンしない Web プラットフォーム EventTarget インターフェイスで'error'動作します。

import { once, EventEmitter } from 'node:events';
import process from 'node:process';

const ee = new EventEmitter();

process.nextTick(() => {
  ee.emit('myevent', 42);
});

const [value] = await once(ee, 'myevent');
console.log(value);

const err = new Error('kaboom');
process.nextTick(() => {
  ee.emit('error', err);
});

try {
  await once(ee, 'myevent');
} catch (err) {
  console.error('error happened', err);
}

イベントの特別な処理は、 が別の 'error' イベントを待機するために使用される場合 events.once() にのみ使用されます。 を使用して 'error' イベント自体を待機する場合events.once()は、特別な処理を行わずに他の種類のイベントとして扱われます。

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

const ee = new EventEmitter();

once(ee, 'error')
  .then(([err]) => console.log('ok', err.message))
  .catch((err) => console.error('error', err.message));

ee.emit('error', new Error('boom'));

// Prints: ok boom

AbortSignal 使用して、イベントの待機を取り消すことができます。

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

const ee = new EventEmitter();
const ac = new AbortController();

async function foo(emitter, event, signal) {
  try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
  } catch (error) {
    if (error.name === 'AbortError') {
      console.error('Waiting for the event was canceled!');
    } else {
      console.error('There was an error', error.message);
    }
  }
}

foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
static function once(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>

パラメーター

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

戻り値

Promise<any[]>

継承元 InternalClient.once

once(_DOMEventTarget, string, StaticEventEmitterOptions)

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

パラメーター

emitter

_DOMEventTarget

eventName

string

options

StaticEventEmitterOptions

戻り値

Promise<any[]>

継承元 InternalClient.once

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

という名前eventNameのイベントの 1 回listener限りの関数を追加します。 次回トリガーされると eventName 、このリスナーが削除され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

既定では、イベント リスナーは追加された順序で呼び出されます。 メソッドは emitter.prependOnceListener() 、リスナー配列の先頭にイベント リスナーを追加する代わりに使用できます。

import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
//   b
//   a
function once<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 InternalClient.once

open()

function open(): Promise<Connected>

戻り値

Promise<Connected>

継承元 InternalClient.open

open(Callback<Connected>)

function open(openCallback: Callback<Connected>)

パラメーター

openCallback

Callback<Connected>

継承元 InternalClient.open

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

という名前eventNamelistenerイベントのリスナー配列の先頭に 関数を追加します。 が既に追加されているかどうかを確認 listener するチェックは行われません。 と の同じ組み合わせを渡す複数のeventNamelistener呼び出しでは、 がlistener複数回追加され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 InternalClient.prependListener

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

という名前eventNameのイベントの 1 回listener限りの関数をリスナー配列の先頭に追加します。 次回 eventName トリガーされると、このリスナーが削除され、呼び出されます。

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

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

パラメーター

eventName

string | symbol

イベントの名前です。

listener

(args: any[]) => void

コールバック関数

戻り値

継承元 InternalClient.prependOnceListener

rawListeners<K>(string | symbol)

という名前 eventNameのイベントのリスナーの配列のコピーを返します。これには、ラッパー (によって .once()作成されたものなど) も含まれます。

import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));

// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];

// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();

// Logs "log once" to the console and removes the listener
logFnWrapper();

emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');

// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
function rawListeners<K>(eventName: string | symbol): Function[]

パラメーター

eventName

string | symbol

戻り値

Function[]

継承元 InternalClient.rawListeners

reject(Message)

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

パラメーター

message
Message

戻り値

Promise<MessageRejected>

継承元 InternalClient.reject

reject(Message, Callback<MessageRejected>)

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

パラメーター

message
Message
rejectCallback

Callback<MessageRejected>

継承元 InternalClient.reject

removeAllListeners(string | symbol)

すべてのリスナー、または指定した のリスナーを削除します eventName

特に、インスタンスが他のコンポーネントまたはモジュール (ソケットやファイル ストリームなど) によって作成された場合 EventEmitter に、コード内の他の場所に追加されたリスナーを削除するのは不適切な方法です。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

パラメーター

eventName

string | symbol

戻り値

継承元 InternalClient.removeAllListeners

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

という名前eventNameのイベントのリスナー配列から指定された listener を削除します。

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

removeListener() では、リスナー配列からリスナーのインスタンスが最大で 1 つ削除されます。 指定した eventNameのリスナー配列に 1 つのリスナーが複数回追加されている場合は、 removeListener() 各インスタンスを削除するために複数回呼び出す必要があります。

イベントが生成されると、生成時にそれにアタッチされたすべてのリスナーが順番に呼び出されます。 これは、出力と最後のremoveListener()リスナーの実行が完了する前に または removeAllListeners() を呼び出しても、進行中からemit()削除されないことを意味します。 後続のイベントは想定どおりに動作します。

import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();

const callbackA = () => {
  console.log('A');
  myEmitter.removeListener('event', callbackB);
};

const callbackB = () => {
  console.log('B');
};

myEmitter.on('event', callbackA);

myEmitter.on('event', callbackB);

// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
//   A
//   B

// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
//   A

リスナーは内部配列を使用して管理されるため、これを呼び出すと、リスナーが削除された に登録されたすべてのリスナーの位置インデックスが変更されます。 これはリスナーが呼び出される順序には影響しませんが、メソッドによって emitter.listeners() 返されるリスナー配列のコピーを再作成する必要があることを意味します。

(次の例のように) 1 つのイベントに対して 1 つの関数がハンドラーとして複数回追加されると、 removeListener() 最後に追加されたインスタンスが削除されます。 この例では、 once('ping') リスナーは削除されます。

import { EventEmitter } from 'node:events';
const ee = new EventEmitter();

function pong() {
  console.log('pong');
}

ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);

ee.emit('ping');
ee.emit('ping');

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

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

パラメーター

eventName

string | symbol

listener

(args: any[]) => void

戻り値

継承元 InternalClient.removeListener

sendEvent(Message)

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

パラメーター

message
Message

戻り値

Promise<MessageEnqueued>

継承元 InternalClient.sendEvent

sendEvent(Message, Callback<MessageEnqueued>)

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

パラメーター

message
Message
sendEventCallback

Callback<MessageEnqueued>

継承元 InternalClient.sendEvent

sendEventBatch(Message[])

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

パラメーター

messages

Message[]

戻り値

Promise<MessageEnqueued>

継承元 InternalClient.sendEventBatch

sendEventBatch(Message[], Callback<MessageEnqueued>)

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

パラメーター

messages

Message[]

sendEventBatchCallback

Callback<MessageEnqueued>

継承元 InternalClient.sendEventBatch

setMaxListeners(number)

既定 EventEmitterでは、 は、特定のイベントに対して複数のリスナーが追加された場合 10 に警告を出力します。 これは、メモリ リークの検出に役立つ便利な既定値です。 メソッドを emitter.setMaxListeners() 使用すると、この特定 EventEmitter のインスタンスの制限を変更できます。 リスナーの数を無制限に Infinity 示すには、値を (または 0) に設定できます。

呼び出しをチェーンできるように、 への EventEmitter参照を返します。

function setMaxListeners(n: number): Client

パラメーター

n

number

戻り値

継承元 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)[])

パラメーター

n

number

負以外の数値。 イベントあたりの EventTarget リスナーの最大数。

eventTargets

(EventEmitter<DefaultEventMap> | _DOMEventTarget)[]

継承元 InternalClient.setMaxListeners

setRetryPolicy(RetryPolicy)

クライアントがすべての操作で使用する再試行ポリシーを設定します。 既定値は ExponentialBackoffWithJitter です

function setRetryPolicy(policy: RetryPolicy)

パラメーター

policy

RetryPolicy

{RetryPolicy}今後のすべての操作に使用する必要がある再試行ポリシー。

継承元 InternalClient.setRetryPolicy

setTransportOptions(any)

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

パラメーター

options

any

戻り値

Promise<TransportConfigured>

継承元 InternalClient.setTransportOptions

setTransportOptions(any, Callback<TransportConfigured>)

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

パラメーター

options

any

done

Callback<TransportConfigured>

継承元 InternalClient.setTransportOptions

updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)

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

パラメーター

sharedAccessSignature

string

updateSasCallback

Callback<SharedAccessSignatureUpdated>

継承元 InternalClient.updateSharedAccessSignature

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

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

パラメーター

error

Error

event

string | symbol

args

AnyRest

継承元 InternalClient.__@captureRejectionSymbol@138