JSFiddle - React, Tailwind, and code Playground
by stvnmntjy
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
JavaScript
const Observable = Rx.Observable;
const time = () => {
const now = new Date();
return `${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}.${now.getMilliseconds()}`;
};
const write = text => {
const textNode = document.createTextNode(`[${time()}]: ${text}`);
const p = document.createElement('p');
p.appendChild(textNode);
document.body.appendChild(p);
};
const observeScalar = observable$ => {
observable$.subscribe(
nextValue => {
write(nextValue);
},
err => {
write(err);
},
() => {
write('complete alpha observable!');
}
);
};
const observeJSON = observable$ => {
observable$.subscribe(
nextValue => {
const json$ = Observable.from(nextValue.json());
json$.subscribe(
json => {
write(JSON.stringify(json));
},
err => {
write(err);
},
() => {
write('complete inner response observable!');
}
);
},
err => {
write(err);
},
() => {
write('complete alpha observable!');
}
);
};
const hi$ = Observable.of('hi');
observeScalar(hi$);
const arr$ = Observable.from([1, 2, 3, 4, 5]);
observeScalar(arr$);
const ajax$ = Observable.fromPromise(fetch('https://jsonplaceholder.typicode.com/posts/1'));
observeJSON(ajax$);