如果你是很新的可觀,我建議你開始一個基本的例子。
例如:(僞代碼,也許)
let observable = new Observable<string>(observer => {
if (1 == 1) {
observer.next("one is one");
} else {
observer.error("one is not one");
}
});
observable.subscribe(
response => console.log(response),
error -> console.log(error)
);
使用主題更多的是相同的,但一個主題,可以多一點自由使用:
let subject = new Subject();
subject.subscribe(response -> console.log(response));
subject.next('hello');
我相信我看到你把這兩者結合起來,訂閱這個主題,然後用可觀察數據獲取數據?通過這些例子,你是否有足夠的信息,或者你需要一個非常具體的例子?
編輯:
您this.initialized.subscribe
'啓動過程'。 你調用loadOtherData函數的時間太晚了,這使得你在數據返回時沒有訂閱this.initialized。這就是爲什麼你沒有看到的console.log(「初始化」)
EDIT2:
注意到,一個BehaviorSubject
持有它的數據,並返回它的訂閱。沒有必要用空字符串來初始化它。
那麼,如果我有一個可觀察/訂閱的參考,那麼是否有一種方法來「訂閱」已經完成的可觀察項? – Gillardo
就像我說過的,BehaviorSubject返回它的訂閱數據。所以這是一個可行的方法。 – Carsten