Client class
Cliente de dispositivo do Hub IoT usado para conectar um dispositivo a um hub IoT do Azure.
Os usuários do SDK devem chamar um dos métodos de fábrica, fromConnectionString ou de SharedAccessSignature para criar um cliente de dispositivo do Hub IoT.
- Extends
-
InternalClient
Construtores
Client(Device |
Propriedades Herdadas
capture |
Altere a opção |
capture |
Valor: Veja como escrever um |
default |
Por padrão, um máximo de Tenha cuidado ao definir o Este não é um limite rígido. A instância
O O aviso emitido pode ser inspecionado com |
error |
Este símbolo deve ser utilizado para instalar um ouvinte apenas para monitorizar A instalação de um ouvinte usando esse símbolo não altera o comportamento quando um evento |
Métodos
close() | |
close(Callback<Disconnected>) | Fecha a conexão de transporte e destrói os recursos do cliente. Nota: Depois de chamar esse método, o objeto Client não pode ser reutilizado. |
from |
Cria um cliente de dispositivo do Hub IoT a partir do método de autenticação fornecido e usando o tipo de transporte fornecido. |
from |
Cria um cliente de dispositivo do Hub IoT a partir da cadeia de conexão fornecida usando o tipo de transporte fornecido. |
from |
Cria um cliente de dispositivo do Hub IoT a partir da assinatura de acesso compartilhado fornecida usando o tipo de transporte fornecido. |
get |
|
get |
O |
notify |
|
notify |
O método |
on |
Registra um retorno de chamada para um método chamado |
set |
|
set |
|
upload |
|
upload |
O método |
Métodos Herdados
abandon(Message) | |
abandon(Message, Callback<Message |
|
add |
Ouve uma vez o evento Ouvir o evento Essa API permite o uso seguro de Devolve um descartável para que possa ser retirado mais facilmente.
|
add |
Alias para |
complete(Message) | |
complete(Message, Callback<Message |
|
emit<K>(string | symbol, Any |
Chama de forma síncrona cada um dos ouvintes registrados para o evento chamado Retorna
|
event |
Retorna uma matriz listando os eventos para os quais o emissor registrou ouvintes. Os valores na matriz são strings ou
|
get |
Retorna uma cópia da matriz de ouvintes para o evento chamado Para Por
|
get |
Retorna o valor máximo de ouvinte atual para o |
get |
Retorna a quantidade máxima de ouvintes definida no momento. Para Por
|
get |
|
get |
|
listener |
Um método de classe que retorna o número de ouvintes para o determinado
|
listener |
Retorna o número de ouvintes ouvindo o evento chamado |
listeners<K>(string | symbol) | Retorna uma cópia da matriz de ouvintes para o evento chamado
|
off<K>(string | symbol, (args: any[]) => void) | Alias para |
on(Event |
Retorna um Um
Use a opção
|
on(Event |
|
on<K>(string | symbol, (args: any[]) => void) | Adiciona a função
Retorna uma referência ao Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O método
|
once(Event |
Cria um Este método é intencionalmente genérico e funciona com a plataforma web interface de EventTarget, que não tem semântica de evento
O tratamento especial do evento
Um
|
once(Event |
|
once<K>(string | symbol, (args: any[]) => void) | Adiciona uma função
Retorna uma referência ao Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O método
|
open() | |
open(Callback<Connected>) | |
prepend |
Adiciona a função
Retorna uma referência ao |
prepend |
Adiciona uma
Retorna uma referência ao |
raw |
Retorna uma cópia da matriz de ouvintes para o evento chamado
|
reject(Message) | |
reject(Message, Callback<Message |
|
remove |
Remove todos os ouvintes ou os do É uma má prática remover ouvintes adicionados em outro lugar no código, particularmente quando a instância Retorna uma referência ao |
remove |
Remove o
Uma vez que um evento é emitido, todos os ouvintes ligados a ele no momento da emissão são chamados em ordem. Isso implica que qualquer
Como os ouvintes são gerenciados usando uma matriz interna, chamar isso alterará os índices de posição de qualquer ouvinte registrado depois de o ouvinte ser removido. Isso não afetará a ordem na qual os ouvintes são chamados, mas significa que todas as cópias da matriz de ouvintes retornadas pelo método Quando uma única função tiver sido adicionada como manipulador várias vezes para um único evento (como no exemplo abaixo),
Retorna uma referência ao |
send |
|
send |
|
send |
|
send |
|
set |
Por padrão Retorna uma referência ao |
set |
|
set |
Define a política de repetição usada pelo cliente em todas as operações. O padrão é ExponentialBackoffWithJitter. |
set |
|
set |
|
update |
|
[capture |
Detalhes do Construtor
Client(DeviceTransport, string, BlobUploadClient, FileUploadInterface)
new Client(transport: DeviceTransport, connStr?: string, blobUploadClient?: BlobUploadClient, fileUploadApi?: FileUploadInterface)
Parâmetros
- transport
- DeviceTransport
Um objeto que implementa a interface esperada de um objeto de transporte, por exemplo, Http.
- connStr
-
string
Uma cadeia de conexão (opcional: quando não fornecida, updateSharedAccessSignature deve ser chamada para definir o token SharedAccessSignature diretamente).
- blobUploadClient
-
BlobUploadClient
Um objeto que é capaz de carregar um fluxo para um blob.
- fileUploadApi
-
FileUploadInterface
Um objeto usado para comunicação com ações relacionadas ao Hub IoT para Armazenamento de Blob.
Detalhes da Propriedade Herdada
captureRejections
Altere a opção captureRejections
padrão em todos os novos objetos EventEmitter
.
static captureRejections: boolean
Valor de Propriedade
boolean
herdado de InternalClient.captureRejections
captureRejectionSymbol
Valor: Symbol.for('nodejs.rejection')
Veja como escrever um rejection handler
personalizado.
static captureRejectionSymbol: typeof captureRejectionSymbol
Valor de Propriedade
typeof captureRejectionSymbol
herdado de InternalClient.captureRejectionSymbol
defaultMaxListeners
Por padrão, um máximo de 10
ouvintes podem ser registrados para qualquer evento. Esse limite pode ser alterado para instâncias EventEmitter
individuais usando o método emitter.setMaxListeners(n)
. Para alterar o padrão para todas as instânciasEventEmitter
, a propriedade events.defaultMaxListeners
pode ser usada. Se esse valor não for um número positivo, uma RangeError
será lançada.
Tenha cuidado ao definir o events.defaultMaxListeners
porque a alteração afeta todas as instânciasEventEmitter
, incluindo aquelas criadas antes de a alteração ser feita. No entanto, chamar emitter.setMaxListeners(n)
ainda tem precedência sobre events.defaultMaxListeners
.
Este não é um limite rígido. A instância EventEmitter
permitirá que mais ouvintes sejam adicionados, mas enviará um aviso de rastreamento para stderr indicando que um "possível vazamento de memória EventEmitter" foi detetado. Para qualquer EventEmitter
, os métodos emitter.getMaxListeners()
e emitter.setMaxListeners()
podem ser usados para evitar temporariamente este aviso:
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));
});
O --trace-warnings
sinalizador de linha de comando pode ser usado para exibir o rastreamento de pilha para esses avisos.
O aviso emitido pode ser inspecionado com process.on('warning')
e terá as propriedades adicionais emitter
, type
e count
, referentes à instância do emissor do evento, ao nome do evento e ao número de ouvintes anexados, respectivamente.
Sua propriedade name
está definida como 'MaxListenersExceededWarning'
.
static defaultMaxListeners: number
Valor de Propriedade
number
herdado de InternalClient.defaultMaxListeners
errorMonitor
Este símbolo deve ser utilizado para instalar um ouvinte apenas para monitorizar 'error'
eventos. Os ouvintes instalados usando esse símbolo são chamados antes que os ouvintes 'error'
regulares sejam chamados.
A instalação de um ouvinte usando esse símbolo não altera o comportamento quando um evento 'error'
é emitido. Portanto, o processo ainda falhará se nenhum ouvinte de 'error'
regular estiver instalado.
static errorMonitor: typeof errorMonitor
Valor de Propriedade
typeof errorMonitor
herdado de InternalClient.errorMonitor
Detalhes de Método
close()
function close(): Promise<Disconnected>
Devoluções
Promise<Disconnected>
close(Callback<Disconnected>)
Fecha a conexão de transporte e destrói os recursos do cliente.
Nota: Depois de chamar esse método, o objeto Client não pode ser reutilizado.
function close(closeCallback?: Callback<Disconnected>)
Parâmetros
- closeCallback
-
Callback<Disconnected>
Função opcional para chamar uma vez que o transporte é desconectado e o cliente fechado.
fromAuthenticationProvider(AuthenticationProvider, any)
Cria um cliente de dispositivo do Hub IoT a partir do método de autenticação fornecido e usando o tipo de transporte fornecido.
static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): Client
Parâmetros
- authenticationProvider
-
AuthenticationProvider
Objeto usado para obter os parâmetros de autenticação para o hub IoT.
- transportCtor
-
any
Protocolo de transporte usado para se conectar ao hub IoT.
Devoluções
fromConnectionString(string, any)
Cria um cliente de dispositivo do Hub IoT a partir da cadeia de conexão fornecida usando o tipo de transporte fornecido.
static function fromConnectionString(connStr: string, transportCtor: any): Client
Parâmetros
- connStr
-
string
Uma cadeia de conexão que encapsula permissões de "conexão de dispositivo" em um hub IoT.
- transportCtor
-
any
Um construtor de transporte.
Devoluções
fromSharedAccessSignature(string, any)
Cria um cliente de dispositivo do Hub IoT a partir da assinatura de acesso compartilhado fornecida usando o tipo de transporte fornecido.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): Client
Parâmetros
- sharedAccessSignature
-
string
Uma assinatura de acesso compartilhado que encapsula permissões de "conexão de dispositivo" em um hub IoT.
- transportCtor
-
any
Devoluções
getBlobSharedAccessSignature(string)
function getBlobSharedAccessSignature(blobName: string): Promise<UploadParams>
Parâmetros
- blobName
-
string
Devoluções
Promise<UploadParams>
getBlobSharedAccessSignature(string, Callback<UploadParams>)
O getBlobSharedAccessSignature
obtém o Token SAS da conta de armazenamento vinculada do Hub IoT
function getBlobSharedAccessSignature(blobName: string, callback?: Callback<UploadParams>)
Parâmetros
- blobName
-
string
O nome a ser usado para o blob que será criado com o conteúdo do fluxo.
- callback
-
Callback<UploadParams>
Retorno de chamada opcional para ligar quando o carregamento estiver concluído.
notifyBlobUploadStatus(string, boolean, number, string)
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string): Promise<void>
Parâmetros
- correlationId
-
string
- isSuccess
-
boolean
- statusCode
-
number
- statusDescription
-
string
Devoluções
Promise<void>
notifyBlobUploadStatus(string, boolean, number, string, ErrorCallback)
O método notifyBlobUploadStatus
envia ao Hub IoT o resultado de um carregamento de blob.
function notifyBlobUploadStatus(correlationId: string, isSuccess: boolean, statusCode: number, statusDescription: string, callback?: ErrorCallback)
Parâmetros
- correlationId
-
string
Um id para correlacionar um status de carregamento a um blob específico. Gerado durante a chamada para getBlobSharedAccessSignature
.
- isSuccess
-
boolean
O status de sucesso ou falha do resultado da operação de blob de armazenamento.
- statusCode
-
number
O código de status HTTP associado ao resultado do blob de armazenamento.
- statusDescription
-
string
A descrição do código de status HTTP.
- callback
-
ErrorCallback
Retorno de chamada opcional para ligar quando o carregamento estiver concluído.
onDeviceMethod(string, (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
Registra um retorno de chamada para um método chamado methodName
.
function onDeviceMethod(methodName: string, callback: (request: DeviceMethodRequest, response: DeviceMethodResponse) => void)
Parâmetros
- methodName
-
string
Nome do método que será manipulado pelo retorno de chamada
- callback
-
(request: DeviceMethodRequest, response: DeviceMethodResponse) => void
Função que deve ser chamada sempre que um pedido de método para o método chamado methodName
é recebido.
setOptions(DeviceClientOptions)
function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>
Parâmetros
- options
- DeviceClientOptions
Devoluções
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
function setOptions(options: DeviceClientOptions, done: Callback<TransportConfigured>)
Parâmetros
- options
- DeviceClientOptions
- done
-
Callback<TransportConfigured>
uploadToBlob(string, Stream, number)
function uploadToBlob(blobName: string, stream: Stream, streamLength: number): Promise<void>
Parâmetros
- blobName
-
string
- stream
-
Stream
- streamLength
-
number
Devoluções
Promise<void>
uploadToBlob(string, Stream, number, ErrorCallback)
O método uploadToBlob
carrega um fluxo para um blob.
function uploadToBlob(blobName: string, stream: Stream, streamLength: number, callback: ErrorCallback)
Parâmetros
- blobName
-
string
O nome a ser usado para o blob que será criado com o conteúdo do fluxo.
- stream
-
Stream
Os dados para isso devem ser carregados para o blob.
- streamLength
-
number
O tamanho dos dados deve ser carregado para o blob.
- callback
-
ErrorCallback
Detalhes do Método Herdado
abandon(Message)
function abandon(message: Message): Promise<MessageAbandoned>
Parâmetros
- message
- Message
Devoluções
Promise<MessageAbandoned>
herdado de InternalClient.abandon
abandon(Message, Callback<MessageAbandoned>)
function abandon(message: Message, abandonCallback: Callback<MessageAbandoned>)
Parâmetros
- message
- Message
- abandonCallback
-
Callback<MessageAbandoned>
herdado de InternalClient.abandon
addAbortListener(AbortSignal, (event: Event) => void)
Ouve uma vez o evento abort
no signal
fornecido.
Ouvir o evento abort
em sinais de abortamento não é seguro e pode levar a vazamentos de recursos, uma vez que outro terceiro com o sinal pode ligar para e.stopImmediatePropagation()
. Infelizmente, Node.js não pode mudar isso, pois violaria o padrão da web. Além disso, a API original facilita o esquecimento da remoção de ouvintes.
Essa API permite o uso seguro de AbortSignal
s em APIs Node.js, resolvendo esses dois problemas ouvindo o evento de modo que stopImmediatePropagation
não impeça o ouvinte de executar.
Devolve um descartável para que possa ser retirado mais facilmente.
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
Parâmetros
- signal
-
AbortSignal
- resource
-
(event: Event) => void
Devoluções
Disposable
Descartável que remove o abort
ouvinte.
herdado de InternalClient.addAbortListener
addListener<K>(string | symbol, (args: any[]) => void)
Alias para emitter.on(eventName, listener)
.
function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Devoluções
herdado de InternalClient.addListener
complete(Message)
function complete(message: Message): Promise<MessageCompleted>
Parâmetros
- message
- Message
Devoluções
Promise<MessageCompleted>
herdado de InternalClient.complete
complete(Message, Callback<MessageCompleted>)
function complete(message: Message, completeCallback: Callback<MessageCompleted>)
Parâmetros
- message
- Message
- completeCallback
-
Callback<MessageCompleted>
herdado de InternalClient.complete
emit<K>(string | symbol, AnyRest)
Chama de forma síncrona cada um dos ouvintes registrados para o evento chamado eventName
, na ordem em que foram registrados, passando os argumentos fornecidos para cada um.
Retorna true
se o evento teve ouvintes false
caso contrário.
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
Parâmetros
- eventName
-
string | symbol
- args
-
AnyRest
Devoluções
boolean
herdado de InternalClient.emit
eventNames()
Retorna uma matriz listando os eventos para os quais o emissor registrou ouvintes. Os valores na matriz são strings ou Symbol
s.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]
Devoluções
(string | symbol)[]
herdado de InternalClient.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)
Retorna uma cópia da matriz de ouvintes para o evento chamado eventName
.
Para EventEmitter
s, isto comporta-se exatamente da mesma forma que chamar .listeners
ao emissor.
Por EventTarget
s, essa é a única maneira de obter os ouvintes do evento para o público-alvo. Isso é útil para fins de depuração e diagnóstico.
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[]
Parâmetros
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
- name
-
string | symbol
Devoluções
Function[]
herdado de InternalClient.getEventListeners
getMaxListeners()
Retorna o valor máximo de ouvinte atual para o EventEmitter
que é definido por emitter.setMaxListeners(n)
ou padrão como defaultMaxListeners.
function getMaxListeners(): number
Devoluções
number
herdado de InternalClient.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)
Retorna a quantidade máxima de ouvintes definida no momento.
Para EventEmitter
s, isto comporta-se exatamente da mesma forma que chamar .getMaxListeners
ao emissor.
Por EventTarget
s, essa é a única maneira de obter o máximo de ouvintes de eventos para o destino do evento. Se o número de manipuladores de eventos em um único EventTarget exceder o conjunto máximo, o EventTarget imprimirá um aviso.
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
Parâmetros
- emitter
-
EventEmitter<DefaultEventMap> | EventTarget
Devoluções
number
herdado de InternalClient.getMaxListeners
getTwin()
getTwin(Callback<Twin>)
function getTwin(done: Callback<Twin>)
Parâmetros
- done
-
Callback<Twin>
herdado de InternalClient.getTwin
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)
Aviso
Esta API foi preterida.
Since v3.2.0 - Use listenerCount
instead.
Um método de classe que retorna o número de ouvintes para o determinado eventName
registrado no emitter
determinado.
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
Parâmetros
- emitter
-
EventEmitter<DefaultEventMap>
O emissor a consultar
- eventName
-
string | symbol
O nome do evento
Devoluções
number
herdado de InternalClient.listenerCount
listenerCount<K>(string | symbol, Function)
Retorna o número de ouvintes ouvindo o evento chamado eventName
.
Se listener
for fornecido, ele retornará quantas vezes o ouvinte é encontrado na lista dos ouvintes do evento.
function listenerCount<K>(eventName: string | symbol, listener?: Function): number
Parâmetros
- eventName
-
string | symbol
O nome do evento que está sendo escutado
- listener
-
Function
A função de manipulador de eventos
Devoluções
number
herdado de InternalClient.listenerCount
listeners<K>(string | symbol)
Retorna uma cópia da matriz de ouvintes para o evento chamado 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[]
Parâmetros
- eventName
-
string | symbol
Devoluções
Function[]
herdado de InternalClient.listeners
off<K>(string | symbol, (args: any[]) => void)
Alias para emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Devoluções
herdado de InternalClient.off
on(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterIteratorOptions)
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
Retorna um AsyncIterator
que itera eventName
eventos. Ele vai jogar se o EventEmitter
emite 'error'
. Ele remove todos os ouvintes ao sair do loop. O value
retornado por cada iteração é uma matriz composta pelos argumentos de evento emitidos.
Um AbortSignal
pode ser usado para cancelar a espera em eventos:
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());
Use a opção close
para especificar uma matriz de nomes de eventos que encerrará a iteração:
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
ee.emit('close');
});
for await (const event of on(ee, 'foo', { close: ['close'] })) {
console.log(event); // prints ['bar'] [42]
}
// the loop will exit after 'close' is emitted
console.log('done'); // prints 'done'
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>
Parâmetros
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterIteratorOptions
Devoluções
AsyncIterator<any[], any, any>
Um AsyncIterator
que itera eventName
eventos emitidos pelo emitter
herdado de InternalClient.on
on(EventTarget, string, StaticEventEmitterIteratorOptions)
static function on(emitter: EventTarget, eventName: string, options?: StaticEventEmitterIteratorOptions): AsyncIterator<any[], any, any>
Parâmetros
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterIteratorOptions
Devoluções
AsyncIterator<any[], any, any>
herdado de InternalClient.on
on<K>(string | symbol, (args: any[]) => void)
Adiciona a função listener
ao final da matriz de ouvintes do evento chamado eventName
. Nenhuma verificação é feita para ver se o listener
já foi adicionado. Várias chamadas que passam a mesma combinação de eventName
e listener
resultarão no listener
sendo adicionado e chamado várias vezes.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O método emitter.prependListener()
pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.
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
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Devoluções
herdado de InternalClient.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Cria um Promise
que é cumprido quando o EventEmitter
emite o evento dado ou que é rejeitado se o EventEmitter
emite 'error'
enquanto espera.
O Promise
será resolvido com uma matriz de todos os argumentos emitidos para o evento dado.
Este método é intencionalmente genérico e funciona com a plataforma web interface de EventTarget, que não tem semântica de evento'error'
especial e não ouve o evento '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);
}
O tratamento especial do evento 'error'
só é usado quando events.once()
é usado para aguardar outro evento. Se events.once()
é usado para esperar pelo evento 'error'
em si, então ele é tratado como qualquer outro tipo de evento sem manipulação especial:
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
Um AbortSignal
pode ser usado para cancelar a espera pelo evento:
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[]>
Parâmetros
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterOptions
Devoluções
Promise<any[]>
herdado de InternalClient.once
once(EventTarget, string, StaticEventEmitterOptions)
static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
Parâmetros
- emitter
-
EventTarget
- eventName
-
string
- options
-
StaticEventEmitterOptions
Devoluções
Promise<any[]>
herdado de InternalClient.once
once<K>(string | symbol, (args: any[]) => void)
Adiciona uma funçãolistener
única para o evento chamado eventName
. Na próxima vez que eventName
for acionado, esse ouvinte será removido e, em seguida, invocado.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O método emitter.prependOnceListener()
pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.
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
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Devoluções
herdado de InternalClient.once
open()
function open(): Promise<Connected>
Devoluções
Promise<Connected>
herdado de InternalClient.open
open(Callback<Connected>)
function open(openCallback: Callback<Connected>)
Parâmetros
- openCallback
-
Callback<Connected>
herdado de InternalClient.open
prependListener<K>(string | symbol, (args: any[]) => void)
Adiciona a função listener
já foi adicionado. Várias chamadas que passam a mesma combinação de eventName
e listener
resultarão no listener
sendo adicionado e chamado várias vezes.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Devoluções
herdado de InternalClient.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
Adiciona uma eventName
for acionado, esse ouvinte será removido e, em seguida, invocado.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Devoluções
herdado de InternalClient.prependOnceListener
rawListeners<K>(string | symbol)
Retorna uma cópia da matriz de ouvintes para o evento chamado eventName
, incluindo quaisquer wrappers (como os criados por .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[]
Parâmetros
- eventName
-
string | symbol
Devoluções
Function[]
herdado de InternalClient.rawListeners
reject(Message)
function reject(message: Message): Promise<MessageRejected>
Parâmetros
- message
- Message
Devoluções
Promise<MessageRejected>
herdado de InternalClient.reject
reject(Message, Callback<MessageRejected>)
function reject(message: Message, rejectCallback: Callback<MessageRejected>)
Parâmetros
- message
- Message
- rejectCallback
-
Callback<MessageRejected>
herdado de InternalClient.reject
removeAllListeners(string | symbol)
Remove todos os ouvintes ou os do eventName
especificado.
É uma má prática remover ouvintes adicionados em outro lugar no código, particularmente quando a instância EventEmitter
foi criada por algum outro componente ou módulo (por exemplo, soquetes ou fluxos de arquivos).
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
function removeAllListeners(eventName?: string | symbol): Client
Parâmetros
- eventName
-
string | symbol
Devoluções
herdado de InternalClient.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
Remove o listener
especificado da matriz de ouvinte do evento chamado eventName
.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener()
removerá, no máximo, uma instância de um ouvinte da matriz do ouvinte. Se qualquer ouvinte tiver sido adicionado várias vezes à matriz de ouvinte para o eventName
especificado, removeListener()
deverá ser chamado várias vezes para remover cada instância.
Uma vez que um evento é emitido, todos os ouvintes ligados a ele no momento da emissão são chamados em ordem. Isso implica que qualquer removeListener()
ou removeAllListeners()
chamadas após emissão e antes de o último ouvinte terminar a execução não as removerá deemit()
em andamento. Os acontecimentos subsequentes comportam-se como esperado.
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
Como os ouvintes são gerenciados usando uma matriz interna, chamar isso alterará os índices de posição de qualquer ouvinte registrado depois de o ouvinte ser removido. Isso não afetará a ordem na qual os ouvintes são chamados, mas significa que todas as cópias da matriz de ouvintes retornadas pelo método emitter.listeners()
precisarão ser recriadas.
Quando uma única função tiver sido adicionada como manipulador várias vezes para um único evento (como no exemplo abaixo), removeListener()
removerá a instância adicionada mais recentemente. No exemplo, o ouvinte once('ping')
é removido:
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');
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Devoluções
herdado de InternalClient.removeListener
sendEvent(Message)
function sendEvent(message: Message): Promise<MessageEnqueued>
Parâmetros
- message
- Message
Devoluções
Promise<MessageEnqueued>
herdado de InternalClient.sendEvent
sendEvent(Message, Callback<MessageEnqueued>)
function sendEvent(message: Message, sendEventCallback: Callback<MessageEnqueued>)
Parâmetros
- message
- Message
- sendEventCallback
-
Callback<MessageEnqueued>
herdado de InternalClient.sendEvent
sendEventBatch(Message[])
function sendEventBatch(messages: Message[]): Promise<MessageEnqueued>
Parâmetros
- messages
-
Message[]
Devoluções
Promise<MessageEnqueued>
herdado de InternalClient.sendEventBatch
sendEventBatch(Message[], Callback<MessageEnqueued>)
function sendEventBatch(messages: Message[], sendEventBatchCallback: Callback<MessageEnqueued>)
Parâmetros
- messages
-
Message[]
- sendEventBatchCallback
-
Callback<MessageEnqueued>
herdado de InternalClient.sendEventBatch
setMaxListeners(number)
Por padrãoEventEmitter
s imprimirá um aviso se mais de 10
ouvintes forem adicionados para um evento específico. Este é um padrão útil que ajuda a encontrar vazamentos de memória. O método emitter.setMaxListeners()
permite que o limite seja modificado para esta instância EventEmitter
específica. O valor pode ser definido como Infinity
(ou 0
) para indicar um número ilimitado de ouvintes.
Retorna uma referência ao EventEmitter
, para que as chamadas possam ser encadeadas.
function setMaxListeners(n: number): Client
Parâmetros
- n
-
number
Devoluções
herdado de InternalClient.setMaxListeners
setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';
const target = new EventTarget();
const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);
static function setMaxListeners(n?: number, eventTargets: (EventEmitter<DefaultEventMap> | EventTarget)[])
Parâmetros
- n
-
number
Um número não negativo. O número máximo de ouvintes por EventTarget
evento.
- eventTargets
-
(EventEmitter<DefaultEventMap> | EventTarget)[]
Zero ou mais instâncias {EventTarget} ou {EventEmitter}. Se nenhum for especificado, n
será definido como o máximo padrão para todos os objetos {EventTarget} e {EventEmitter} recém-criados.
herdado de InternalClient.setMaxListeners
setRetryPolicy(RetryPolicy)
Define a política de repetição usada pelo cliente em todas as operações. O padrão é ExponentialBackoffWithJitter.
function setRetryPolicy(policy: RetryPolicy)
Parâmetros
- policy
-
RetryPolicy
{RetryPolicy} A política de repetição que deve ser usada para todas as operações futuras.
herdado de InternalClient.setRetryPolicy
setTransportOptions(any)
function setTransportOptions(options: any): Promise<TransportConfigured>
Parâmetros
- options
-
any
Devoluções
Promise<TransportConfigured>
herdado de InternalClient.setTransportOptions
setTransportOptions(any, Callback<TransportConfigured>)
function setTransportOptions(options: any, done: Callback<TransportConfigured>)
Parâmetros
- options
-
any
- done
-
Callback<TransportConfigured>
herdado de InternalClient.setTransportOptions
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
function updateSharedAccessSignature(sharedAccessSignature: string, updateSasCallback?: Callback<SharedAccessSignatureUpdated>)
Parâmetros
- sharedAccessSignature
-
string
- updateSasCallback
-
Callback<SharedAccessSignatureUpdated>
herdado de InternalClient.updateSharedAccessSignature
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)
function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)
Parâmetros
- error
-
Error
- event
-
string | symbol
- args
-
AnyRest
herdada de InternalClient.__@captureRejectionSymbol@141