可观察对象( Observable )

可观察对象( Observable )

可观察对象是一个惰性的异步推送集,惰性是指仅当有订阅者对其进行事件订阅时,才会推送。

| | Single | Multiple |
| ---- |:------------- 😐 ---------: |
| Pull | Function | Iterator |
| Push | Promise | Observable|

ExampleThe following is an Observable that pushes the values 1, 2, 3 immediately (synchronously) when subscribed, and the value 4 after one second has passed since the subscribe call, then completes:

var observable = Rx.Observable.create(function (observer) {
  observer.next(1);
  observer.next(2);
  observer.next(3);
  setTimeout(() => {
    observer.next(4);
    observer.complete();
  }, 1000);
});

To invoke the Observable and see these values, we need to subscribe to it:

var 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('got value ' + x),
  error: err => console.error('something wrong occurred: ' + err),
  complete: () => console.log('done'),
});
console.log('just after subscribe');
**Which executes as such on the console**:

just before subscribe
got value 1
got value 2
got value 3
just after subscribe
got value 4
done
posted @ 2016-10-18 15:03  FengeLiu  阅读(472)  评论(0)    收藏  举报