Class: PubSub

@nginstack/web-framework/lib/pubsub/PubSub~ PubSub


new PubSub()

Canal de publicação e subscrição baseada em tópicos. Mantém um mapa de tópicos que podem ser subscritos. Quando uma mensagem é publicada para um tópico, todas as funções subscritas são executadas na ordem em que elas foram adicionadas. Erros não capturados abortam a publicação.

Tópicos podem ser identificados por qualquer string não vazia, exceto as correspondentes para as propriedades natives de Object, como toString, hasOwnProperty, etc.

Author:
  • Inspirado em goog.pubsub.PubSub da Closure Library.

Methods


clear( [opt_topic])

Clears the subscription list for a topic, or all topics if unspecified.

Parameters:
Name Type Argument Description
opt_topic string <optional>

Topic to clear (all topics if unspecified).


getCount( [opt_topic])

Retorna a quantidade de subscrições para um dado tópico ou para todos os tópicos se opt_topic não for informado.

Parameters:
Name Type Argument Description
opt_topic string <optional>

O tópico a ser verificado (todos os tópicos se não for informado).

Returns:

Número de subscrições para o tópico.

Type
number

publish(topic, var_args)

Publica uma mensagem para um tópico. Chama as funções subscritas para o tópico na ordem em que elas foram adicionadas passando todos os argumentos informados após topic.

Aborta a publicação se qualquer uma das funções chamadas lançar um erro.

Parameters:
Name Type Argument Description
topic string

Tópico para o qual a mensagem será publicada.

var_args * <repeatable>

Argumentos que serão passados para as funções subscritas.

Returns:

True se ao menos uma função subscrita for chamada.

Type
boolean

subscribe(topic, fn [, opt_context])

Subscreve uma função para um tópico. A função é invocada como um método para o contexto dado em opt_context, ou no contexto global caso nenhum contexto seja especificado.

Subscrever a mesma função para o mesmo tópico múltiplas vezes irá resultar em múltiplas invocações da função durante uma publicação.

Retorna a identificação da subscrição. Ela poderá ser utilizada para cancelar a subscrição por meio de #unsubscribeByKey.

Parameters:
Name Type Argument Description
topic string

Tópico a ser subscrito.

fn function

Função que deverá ser invocada quando uma mensagem for publicada para o dado tópico.

opt_context Object <optional>

Contexto da função que será chamada.

Returns:

Identificação da subscrição.

Type
number

subscribeOnce(topic, fn [, opt_context])

Subscreve uma função para um tópico que será chamada uma única vez. A função é invocada como um método para o contexto dado em opt_context, ou no contexto global caso nenhum contexto seja especificado.

Subscrever a mesma função para o mesmo tópico múltiplas vezes irá resultar em múltiplas invocações da função durante uma publicação.

Retorna a identificação da subscrição. Ela poderá ser utilizada para cancelar a subscrição por meio de #unsubscribeByKey.

Parameters:
Name Type Argument Description
topic string

Tópico a ser subscrito.

fn function

Função que deverá ser invocada quando uma mensagem for publicada para o dado tópico.

opt_context Object <optional>

Contexto da função que será chamada.

Returns:

Identificação da subscrição.

Type
number

unsubscribe(topic, fn [, opt_context])

Cancela a subscrição de uma função para um dado o tópico. Apenas exclui a primeira ocorrência encontrada.

Retorna um booleano indicando se uma subscrição foi removida.

Parameters:
Name Type Argument Description
topic string

Tópico que deverá ter a subscrição cancelada.

fn function

Função a ter a subscrição cancelada.

opt_context Object <optional>

Contexto da função que será chamada.

Returns:

True se uma subscrição foi removida.

Type
boolean

unsubscribeByKey(key)

Remove uma subscrição com base na chave retornada por #subscribe.

Parameters:
Name Type Description
key number

Identificação da subscrição.

Returns:

True se uma subscrição foi removida.

Type
boolean