@duanyubin
2017-04-10T13:22:09.000000Z
字数 2286
阅读 396
javascript
https://www.youtube.com/watch?v=3LKMwkuK0ZE
https://www.youtube.com/watch?v=ei7FsoXKPl0
RxJS is a library for composing asynchronous and event-based programs
Think of RxJS as Lodash for events.
Here should be some examples
const btn1$ = Observable.fromEvent($('.btn1'), 'click')
btn1$
.scan(count => count + 1, 0)
.subscribe((val) => {
$('.text').text(`You have survived The Older for ${val} Seconds`)
})
-------c-------c-----c-----|--->
Think of it as Asynchronous Array、Promise、Function
value + timeline = Observable
const observable = Rx.Observable.create(function (observer) {
observer.next(1);
observer.next(2);
observer.next(3);
setTimeout(() => {
observer.next(4);
observer.complete();
}, 1000);
});
console.log('just before subscribe');
observable.subscribe({
next: x => console.log(x),
error: err => console.error('something wrong occurred: ' + err),
complete: () => console.log('done'),
});
console.log('just after subscribe');
// logs
// just before subscribe
// 1..2..3
// just After subscribe
// 4
// done
promise.then(
successFn,
errorFn
)
observable.subscribe(
successFn,
errorFn,
completeFn
)
Without Operators, Observable are no scarier than Promise
Promise | Observable | |
---|---|---|
Value amount | Single | Mutilple |
Evaluate | Immediate | Lazy |
Cancelable | No | Yes |
Retry | No | Yes |
function foo () {}
foo.call()
observable.susbscribe()
Functions dont do any thing until they are called
Observables dont do any thing utils they are subscribed
Observers are just objects with three callbacks, one for each type of notification that an Observable may deliver.
var observer = {
next: x => console.log('Observer got a next value: ' + x),
error: err => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
}
error()
breaks the chain