Rxjs的观察员

时间:2017-02-09 13:06:42

标签: angular rxjs

我刚刚开始使用Observable和Observer模式,我经历了各种网站,发现Observable是生产者而Observer是消费者。然后当我通过下面的代码时,我对观察者的意思感到困惑。

 export class AppComponent {
 private data:Observable;
 private dataObserver:Observer;

 constructor(private http: Http) {
 this.data = new Observable(observer => this.dataObserver = observer);
 }

当你创建新的Observable对象时,任何人都可以帮助提供观察者的意义。

this.data = new Observable(observer => this.dataObserver = observer)

1 个答案:

答案 0 :(得分:0)

Observable构造函数的参数是一个回调方法,它使用一个订阅该observable的观察者来调用。因此,在创建Observable时,观察者不可用。

您可以在此处找到更多信息: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-constructor-constructor

  

最初使用Observable时调用的函数   订阅。这个函数给了一个订阅者,新的   值可以是nexted,或者可以调用error方法来引发   可以调用error或complete来通知成功完成。

在这里 http://reactivex.io/documentation/operators/create.html

  

您可以使用Create从头开始创建Observable   运营商。您将此运算符传递给接受观察者的函数   作为其参数。编写此函数,使其表现为   可观察 - 通过调用观察者的onNext,onError和   onCompleted方法适当。

     

格式良好的有限Observable必须尝试调用   观察者的onCompleted方法恰好一次或它的onError方法   恰好一次,此后不得试图打电话给任何一个   观察者的其他方法。