Skip to content

Instantly share code, notes, and snippets.

View kosich's full-sized avatar

Kostia P kosich

View GitHub Profile
const { rxObserver } = require('api/v0.3');
const { Observable } = require('rxjs/Rx');
const { timer } = require('rxjs');
const autoSave$ = Observable
.timer(0, 17)
.map(v => v%2 == 1)
.takeUntil(timer(100))
.share();
const { rxObserver } = require('api/v0.3');
const { Observable } = require('rxjs/Rx');
const { timer } = require('rxjs');
const autoSave$ = Observable
.timer(0, 17)
.map(v => v%2 == 1)
.takeUntil(timer(100))
.share();
const { rxObserver } = require('api/v0.3');
const { timer } = require('rxjs');
const { map, take } = require('rxjs/operators');
timer(0, 100)
.pipe(
take(5),
map(()=>Date.now())
)
.subscribe(rxObserver());
@kosich
kosich / index.js
Last active March 5, 2019 15:23
Pausing observable on mouse hover with event spacing example
const { rxObserver } = require('api/v0.3');
const { of, timer, fromEvent, merge, empty, interval, Subject, forkJoin } = require('rxjs');
const { startWith, switchMap, distinctUntilChanged, map, mapTo, take, tap, concatMap, ignoreElements, multicast, shareReplay } = require('rxjs/operators');
const mouse$ = new Subject();
const TIMEOUT = 50;
const notifications$ = new Subject();
const { rxObserver } = require('api/v0.3');
const { timer, Subject } = require('rxjs');
const { tap, take, takeUntil, map } = require('rxjs/operators');
const userClick = new Subject();
let counter = 5;
let tick = 10;
timer(0, tick)
.pipe(
@kosich
kosich / index.js
Last active March 5, 2019 11:26
Pausable Observable using windowToggle
const { rxObserver, palette } = require('api/v0.3');
const { timer, Subject, from } = require('rxjs');
const { windowToggle, startWith, distinctUntilChanged, flatMap, take, zip, filter, skip, map } = require('rxjs/operators');
// stream for coloring
const palette$ = from(palette);
const source$ = timer(0, 10).pipe(
take(10),
// get color for each item
@kosich
kosich / index.js
Last active March 28, 2019 21:20
Pausable Observable using switchMap
const { rxObserver, palette } = require('api/v0.3');
const { timer, Subject, from, EMPTY } = require('rxjs');
const { switchMap, take, flatMap, zip, startWith, distinctUntilChanged, map, skip } = require('rxjs/operators');
// stream for coloring
const palette$ = from(palette);
const source$ = timer(0, 10).pipe(
take(10),
// get color for each item
@kosich
kosich / index.js
Last active September 27, 2021 14:28
Pausable Observable with buffer
const { rxObserver, palette } = require('api/v0.3');
const { merge, timer, Subject, from, empty } = require('rxjs');
const { filter, startWith, bufferToggle, take, flatMap, zip, distinctUntilChanged, share, skip, map, windowToggle } = require('rxjs/operators');
// stream for coloring
const palette$ = from(palette);
const source$ = timer(0, 10).pipe(
take(10),
// get color for each item
@kosich
kosich / index.js
Last active April 26, 2019 10:27
debounceTime vs throttleTime vs auditTime vs sampleTime
const { rxObserver, palette } = require('api/v0.3');
const { merge, timer, from, NEVER } = require('rxjs');
const { map, take, zip, auditTime, throttleTime, debounceTime, sampleTime, share, concat } = require('rxjs/operators');
// stream for coloring
const palette$ = from(palette);
const source$ = merge(
timer(0, 330),
timer(50, 180)
@kosich
kosich / index.js
Last active March 5, 2019 13:04
Event spacing in RxJS
const { rxObserver, palette } = require('api/v0.3');
const { merge, timer, from } = require('rxjs');
const { map, concatMap, take, zip, ignoreElements, startWith } = require('rxjs/operators');
// stream for coloring
const palette$ = from(palette);
const source$ = merge(
timer(0, 33),
timer(5, 17)