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:
-
- ListenerCompareFunctions
- #DuplicationHandling
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.
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.