2017-02-09 158 views
0

我剛剛開始使用Observable和Observer模式,我經歷了各種網站,發現Observable是生產者,Observer是消費者。然後當我通過下面的代碼時,我對觀察者的意義感到困惑。Rxjs觀察員

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

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

所以,任何人都可以請提供觀察者的含義,當你正在創造新的可觀察對象的幫助。

this.data =新可觀察(觀察者=> this.dataObserver =觀察者)

+1

的[RxJS5訂閱和觀察者之間的不同]可能的複製(http://stackoverflow.com/questions/41949355/difference-between-rxjs5-subscription-and-observer) – olsn

回答

0

可觀測構造函數的參數是所謂的與該訂閱該可觀察的觀察者的回調方法。所以觀察者在創建Observable時不可用。

你可以在這裏找到更多的信息: http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-constructor-constructor

當可觀察最初 訂閱到被調用的函數。這個函數被賦予一個訂閱者,可以將新的 值鏈接到該函數,或者可以調用錯誤方法來引發一個 錯誤,或者可以調用完成來通知成功完成。

這裏 http://reactivex.io/documentation/operators/create.html

您可以通過創建 操作從頭開始創建可觀察到的。您可以通過該操作員接受觀察者 作爲其參數。編寫這個函數,使其表現如同Observable一樣 - 通過適當地調用觀察者的onNext,onError和onCompleted方法。

良好的形成有限可觀察必須嘗試調用任一 觀察者的onCompleted方法正好一次或其onError方法 恰好一次,並且此後不能試圖調用任何 觀察者的其他方法。