Skip to content

Instantly share code, notes, and snippets.

View stevermeister's full-sized avatar
🇺🇦

Stepan Suvorov stevermeister

🇺🇦
View GitHub Profile
const getPostOne$ = Rx.Observable.timer(3000).mapTo({id: 1});
const getPostTwo$ = Rx.Observable.timer(1000).mapTo({id: 2});
Rx.Observable.concat(getPostOne$, getPostTwo$).subscribe(res => console.log(res));
import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';
@Directive({
selector: '[appDelay]'
})
export class DelayDirective {
constructor(
private templateRef: TemplateRef<any>,
private viewContainerRef: ViewContainerRef
) { }
const getPostOne$ = Rx.Observable.timer(1000).mapTo({id: 1});
const getPostTwo$ = Rx.Observable.timer(2000).mapTo({id: 2});
Rx.Observable.forkJoin(getPostOne$, getPostTwo$).subscribe(res => console.log(res))
const post$ = Rx.Observable.of({id: 1});
const getPostInfo$ = Rx.Observable.timer(3000).mapTo({title: "Post title"});
const posts$ = post$.mergeMap(post => getPostInfo$).subscribe(res => console.log(res));
// Tracking the scroll delta
Rx.Observable
.fromEvent(document, 'scroll')
.map(e => window.pageYOffset)
.pairwise()
.subscribe(pair => console.log(pair)); // pair[1] - pair[0]
const intervalOne$ = Rx.Observable.interval(1000);
const intervalTwo$ = Rx.Observable.interval(2000);
Rx.Observable.combineLatest(
intervalOne$,
intervalTwo$
).subscribe(all => console.log(all));
const clicks$ = Rx.Observable.fromEvent(document, 'click');
const innerObservable$ = Rx.Observable.interval(1000);
clicks$.switchMap(event => innerObservable$)
.subscribe(val => console.log(val));
@stevermeister
stevermeister / reduser.redux-mini.js
Created May 18, 2017 09:48
reduser.redux-mini.js
function createStore(reducer, initialState) {
var currentReducer = reducer;
var currentState = initialState;
}
@stevermeister
stevermeister / create-store.redux-mini.js
Created May 18, 2017 09:55
create-store.redux-mini.js
function createStore(reducer, initialState) {
var currentReducer = reducer;
var currentState = initialState;
return {
getState() {
return currentState;
}
};
}
function createStore(reducer, initialState) {
var currentReducer = reducer;
var currentState = initialState;
return {
getState() {
return currentState;
},
dispatch(action) {
currentState = currentReducer(currentState, action);