Function
Static Public Summary | ||
public |
combineLatest(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, subjectList: Array): Subject | BehaviorSubject | ReplaySubject Combines latest values of two or more streams, and returns new stream of an array filled with these values. |
|
public |
debounce(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, stream$: Subject | BehaviorSubject | ReplaySubject, conditionStreamGenerator: function(value: T): Subject): Subject | BehaviorSubject | ReplaySubject Debounce delays values emitted by the source stream, and drops previous pending delayed emissions if a new value arrives on source stream. |
|
public |
filter(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, stream$: Subject | BehaviorSubject | ReplaySubject, conditionCallback: function(value: T): boolean): Subject | BehaviorSubject | ReplaySubject Filters one stream and returns another with only filtered values. |
|
public |
merge(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, subjectList: Array): Subject | BehaviorSubject | ReplaySubject Merges two or more streams into one. |
Static Public
public combineLatest(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, subjectList: Array): Subject | BehaviorSubject | ReplaySubject source
import {combineLatest} from 'rxstream/src/operators/combineLatest.js'
Combines latest values of two or more streams, and returns new stream of an array filled with these values. It will start emit latest values only when all streams has received at least one value.
Params:
Name | Type | Attribute | Description |
SubjectConstructor | Subject | BehaviorSubject | ReplaySubject | Pass a constructor of result stream of an array with latest values |
|
subjectList | Array | An array of subjects/streams latest values of which needs to be collected |
Example:
import { Subject, combineLatest } from 'rxstream';
let letters$ = new Subject();
let numbers$ = new Subject();
let latest$ = combineLatest(Subject, [letters$, numbers$]);
latest$.subscribe(latest => console.log(latest));
letters$.next('a'); // no output, as numbers$ not yet received any value
numbers$.next(1); // ['a', 1]
letters$.next('b'); // ['b', 1]
numbers$.next(2); // ['b', 2]
numbers$.next(3); // ['b', 3]
numbers$.next(4); // ['b', 4]
letters$.next('c'); // ['c', 4]
letters$.next('d'); // ['d', 4]
public debounce(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, stream$: Subject | BehaviorSubject | ReplaySubject, conditionStreamGenerator: function(value: T): Subject): Subject | BehaviorSubject | ReplaySubject source
import {debounce} from 'rxstream/src/operators/debounce.js'
Debounce delays values emitted by the source stream, and drops previous pending delayed emissions if a new value arrives on source stream.
Params:
Name | Type | Attribute | Description |
SubjectConstructor | Subject | BehaviorSubject | ReplaySubject | Pass a constructor of result/filtered stream |
|
stream$ | Subject | BehaviorSubject | ReplaySubject | Stream to be debounced |
|
conditionStreamGenerator | function(value: T): Subject | a function that should return a stream, when new value arrives on that stream, debounced stream emits latest value from the source stream |
Example:
import { Subject, debounce } from 'rxstream';
let clicks$ = new Subject();
let debounced$ = debounce(Subject, clicks$, () => {
let timer$ = new Subject();
setInterval(() => timer$.next(), 1000);
return timer$;
});
document.addEventListener('click', (event) => {
clicks$.next(new Date());
});
debounced$.subscribe((event) => console.log(event));
public filter(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, stream$: Subject | BehaviorSubject | ReplaySubject, conditionCallback: function(value: T): boolean): Subject | BehaviorSubject | ReplaySubject source
import {filter} from 'rxstream/src/operators/filter.js'
Filters one stream and returns another with only filtered values.
Params:
Name | Type | Attribute | Description |
SubjectConstructor | Subject | BehaviorSubject | ReplaySubject | Pass a constructor of result/filtered stream |
|
stream$ | Subject | BehaviorSubject | ReplaySubject | Stream to be filtered |
|
conditionCallback | function(value: T): boolean | Predicate function, to test each element of the stream. Return true to keep the element, false otherwise |
Example:
import { Subject, filter } from 'rxstream';
let numbers$ = new Subject();
let evenNumbers$ = filter(Subject, numbers$, (num) => num % 2 === 0);
evenNumbers$.subscribe(num => console.log(num));
numbers$.next(1);
numbers$.next(2);
numbers$.next(3);
numbers$.next(4);
// Output is going to be: 2, 4
public merge(SubjectConstructor: Subject | BehaviorSubject | ReplaySubject, subjectList: Array): Subject | BehaviorSubject | ReplaySubject source
import {merge} from 'rxstream/src/operators/merge.js'
Merges two or more streams into one.
Params:
Name | Type | Attribute | Description |
SubjectConstructor | Subject | BehaviorSubject | ReplaySubject | Pass a constructor of result/merged stream |
|
subjectList | Array | An array of subjects/streams to be merged |
Example:
import { Subject, BehaviorSubject, merge } from 'rxstream';
let first$ = new BehaviorSubject();
let second$ = new Subject();
let merged$ = merge(Subject, [first$, second$])
first$.next(1);
merged$.subscribe(value => console.log(value));
first$.next(2);
second$.next(3);
second$.next(4);
// Output is going to be: 2, 3, 4.
// Notice that despite the fact that merged stream has BehaviorSubject
// we are getting in output only 2, 3 and 4 but not 1. This is because we specified
// that our result stream should be of type Subject, which does not remember
// previous values.