Class: Emitter

@nginstack/engine/lib/event/Emitter~ Emitter


new Emitter( [opt_parentProperty])

Todos os elementos que podem disparar eventos precisam obrigatoriamente ser uma especialização desta nova implementação.

Parameters:
Name Type Argument Description
opt_parentProperty string <optional>

Indica qual é a propriedade desta instância que deverá ser utilizada para obter o próximo emitter que receberá o evento, mecanismo conhecido borbulha de eventos. O objeto indicado deverá ser uma instância de Emitter.

Members


duplicationHandling :module:@nginstack/engine/lib/event/DuplicationHandling

Indica como deve ser tratada a tentativa de registrar uma função de listener duplicada neste Emitter. Valores possíveis: DuplicationHandling.IGNORE (padrão), DuplicationHandling.ACCEPT e DuplicationHandling.REMOVE.

Type:

listenerCompareFunction :function

Indica como devem ser comparados dois listeners para determinar se eles são iguais. Valores possíveis: ListenerCompareFunctions.STRICT e ListenerCompareFunctions.SOURCE. O tratamento do registro de um listener duplicado é determinada pela propriedade Emitter#DuplicationHandling.

Type:
  • function
See:

Methods


addListenersFromEmitter(emitter [, opt_type])

Adiciona neste emitter os listeners do emitter informado.

Parameters:
Name Type Argument Description
emitter Emitter

Emitter que terá os eventos copiados.

opt_type string <optional>

Tipo do evento a ser copiado. Caso não seja informado, serão copiados os listeners de todos os tipos de evento.


assignListeners(emitter [, opt_type])

Torna este emitter uma cópia do emitter informado. Os tipos de eventos registrados nesta instância serão preservados e complementados com os existentes em emitter.

Parameters:
Name Type Argument Description
emitter Emitter

Emitter que terá os eventos copiados.

opt_type string | Array.<string> <optional>

Tipo do evento a ser copiado. Caso não seja informado, serão copiados os listeners de todos os tipos de evento. Também pode ser informado um array de tipo de eventos a sere copiados.


emit(event)

Emite o evento informado, executando todas as funções de listeners previamente registradas para o tipo do evento emitido.

Parameters:
Name Type Description
event Event

Evento a ser emitido.

Throws:

Erro que dispara caso não exista um tipo registrado para manipulação do evento. Eventos aptos a serem manipulados devem ser registrados com o método #registerEventType.

Type
EventTypeException
Returns:

Retorna a indicação que o evento foi emitido para todos os listeners e não foi solicitado o cancelamento da ação padrão associada ao evento, por meio da execução do método Event#preventDefault. Caso o evento não possa ser cancelado (@link Event#cancelable}), será retornado sempre true.

Type
boolean

filterListeners(filterFn [, opt_type])

Elimina os listeners que não satisfaçam a função de filtro.

Parameters:
Name Type Argument Description
filterFn function

Função que indicará quais filtros devem ser mantidos neste emitter. Deverá ser retornado true para indicar que o filtro deve ser preservado.

opt_type string <optional>

Tipo de evento que terá os listeners filtrados. Caso não seja informado, os listeners de todos os tipos de eventos serão filtrados.


hasListeners(type)

Verifica se há listeners registrados para o tipo de evento informado.

Parameters:
Name Type Description
type string | Array.<string>

Tipo do evento a ser verificado. Também pode ser informado um array de tipos. Neste caso, será retornado true se houver ao menos um listener registrado para um dos tipos informados.

Returns:

True se houver listeners registrados para o tipo de evento informado.

Type
boolean

listenerHandlers(type)

Obtém todas as funções de listeners registradas para o tipo de evento informado. O array retornado é uma cópia dos listeners registrados e sua manipulação não alterará a instância desta classe. Para adicionar ou remover uma nova função de listener, utilize os métodos #on ou #off.

Parameters:
Name Type Description
type string

Tipo de evento ao qual serão obtidos os EventListeners registrados.

See:
Throws:

Será disparado um erro caso o tipo informado não tenha sido registrado previamente pelo método #registerEventType.

Type
EventTypeException
Returns:

Todas as funções de listeners registradas neste emitter para o tipo informado.

Type
Array.<function(Event)>

listeners( [opt_type])

Obtém todos os listeners registrados para o tipo de evento informado. O array retornado é uma cópia dos listeners registrados e sua manipulação não alterará a instância desta classe. Para adicionar ou remover uma nova função de listener, utilize os métodos #on ou #off.

Parameters:
Name Type Argument Description
opt_type string <optional>

Tipo de evento ao qual serão obtidos os EventListeners registrados.

See:
Throws:

Será disparado um erro caso o tipo informado não tenha sido registrado previamente pelo método #registerEventType.

Type
EventTypeException
Returns:

Todos os listeners registrados neste emitter para o tipo informado. Sempre serão retornadas instâncias de Listener, por mais que tenham sido registradas funções de listeners nos métodos #on ou #replaceListeners. Para obter as funções, acesse a propriedade Listener#handler dos elementos retornados ou utilize o método #listenerHandlers para obter a relação de funções. Caso não seja informado, serão retornados todos os listeners.

Type
Array.<Listener>

off(type, listener)

Remove uma função de listener previamente adicionada por meio do método #on.

Se uma função de listener for removida durante a emissão de um evento, ela será executada por mais que tenha sido removida. Ou seja, a remoção valerá para as emissões seguintes.

Parameters:
Name Type Description
type string

Tipo do evento que será removido.

listener Listener | function

Indica a função de listener a ser removida.

See:

offAll( [opt_type])

Remove todas as funções de listener associadas ao tipo informado. Caso o tipo não seja informado, serão removidas todas as funções de listeners de todos os tipos de eventos.

Parameters:
Name Type Argument Description
opt_type string <optional>

Tipo de evento que deverá ter os listeners removidos.


on(type, listener)

Registra uma função que deverá ser executada quando o evento indicado por type for emitido. Por padrão, a função será adicionada no final da fila de listeners, sendo executada após a execução dessas funções previamente registradas.

Se o listener for adicionado durante a emissão de um evento, ele será desconsiderado nesta emissão e será executado apenas nas emissões seguintes.

O comportamento deste emitter ao tentar registrar uma função de listener mais de uma vez é determinado pela propriedade #duplicationHandling.

Parameters:
Name Type Description
type string

Tipo de evento que será registrado.

listener function

Função que será executada quando ocorrer a emissão do evento.

See:
Example
this.on('beforePost', function (event) {
   event.data.codigo = 'Novo cliente';
 });

registerEventType(type)

Registra um novo tipo de evento, permitindo que ele possa ser utilizado por esta instância de Emitter. A tentativa de emitir um evento ou listener de um tipo não registrado provocará um erro.

Parameters:
Name Type Description
type string | Array.<string>

Tipo do evento a ser registrado. Também pode ser informado um array de tipos.


replaceListeners(type, listener)

Registra uma função de listener que irá substituir todos os listeners registrados para o tipo de evento indicado por type. A função informada receberá, além do parâmetro event, um segundo parâmetro que será uma função, que ao ser invocada, emitirá o o evento informado para os listeners que foram substituídos.

O comportamento deste emitter ao tentar registrar uma função de listener mais de uma vez é determinado pela propriedade #duplicationHandling.

Importante: o uso deste método não é recomendado. Ignorar os listeners registrados previamente por outros desenvolvedores é uma má prática de desenvolvimento e pode gerar inconsistências de dados. Seu uso deve ser restrito à compatibilização de eventos antigos que dependem deste comportamento, que antes eram declarados pelo método "set" da antiga API de Eventos do Engine (classe global Event).

Parameters:
Name Type Description
type string

Tipo de evento que será registrado.

listener Listener | function

Função que será executada quando ocorrer a emissão do evento.

See:
Example
this.replaceListeners('beforePost', function (event, emit) {
   event.data.codigo = 'Novo cliente';
   emit(event);
 });

unregisterEventType(type)

Remove o registro de um tipo de evento, bloqueando a utilização nesta instância de Emitter. A tentativa de emitir um evento ou listener de um tipo não registrado provocará um erro.

Parameters:
Name Type Description
type string | Array.<string>

Tipo do evento a ser bloqueado. Também pode ser informado um array de tipos.