我刚刚开始使用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)
答案 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方法 恰好一次,此后不得试图打电话给任何一个 观察者的其他方法。