Fastflux Home Reference Source Repository
import Observable from 'fastflux/core/observable/base'
public class | source

Observable

Direct Subclass:

ObservableState

Indirect Subclass:

Store

Example:

let ready = new Observable;
ready.subscribe(data => console.log("Received:", data));

ready.emit("Foo");
//> Received: Foo

Method Summary

Public Methods
public

emit(value: Any)

Invoke each registered listener with value.

public

filter(predicate: function(value: Any): boolean): Observable

public

True if listener has subscribed to this observable

public

map(mapper: function(value: Any): Any): Observable

public

reduce(accumulator: Any, reducer: function(accumulator: Any, value: Any): Any): ObservableState

public

Register listener

public

unsubscribe(listener: function)

Unregister listener

Public Methods

public emit(value: Any) source

Invoke each registered listener with value.

Params:

NameTypeAttributeDescription
value Any

argument will be passed to listeners

public filter(predicate: function(value: Any): boolean): Observable source

Params:

NameTypeAttributeDescription
predicate function(value: Any): boolean

Return:

Observable

Example:

let numbers = new Observable;
let even = numbers.filter(v => v % 2 === 0);

numbers.subscribe(v => console.log("Any:", v))
even.subscribe(v => console.log("Even:", v));

numbers.emit(1);
//> Any: 1
numbers.emit(2);
//> Any: 2
//> Even: 2

public hasSubscribed(listener: function): boolean source

True if listener has subscribed to this observable

Params:

NameTypeAttributeDescription
listener function

Return:

boolean

public map(mapper: function(value: Any): Any): Observable source

Params:

NameTypeAttributeDescription
mapper function(value: Any): Any

how to transform the emitted value

Return:

Observable

Example:

let x = new Observable;
x.map(v => v * 2).subscribe(v => console.log("Value:", v));

x.emit(10);
//> Value: 20

public reduce(accumulator: Any, reducer: function(accumulator: Any, value: Any): Any): ObservableState source

Params:

NameTypeAttributeDescription
accumulator Any

initial state

reducer function(accumulator: Any, value: Any): Any

Return:

ObservableState

Example:

let emitter = new Observable;
let sum = emitter.reduce(0, (a, v) => a + v);

sum.subscribe(s => console.log(s));

emitter.emit(10);
//> 10
emitter.emit(15);
//> 25

public subscribe(listener: function): Subscription source

Register listener

Params:

NameTypeAttributeDescription
listener function

Return:

Subscription

Throw:

Error

if listener is already subscribed to this observable

public unsubscribe(listener: function) source

Unregister listener

Params:

NameTypeAttributeDescription
listener function

Throw:

Error

if listener is not registered