0
我需要等待2個AJAX請求的結果對它進行一些計算。訂閱Observable.forkJoin永遠不會被調用
我發現Observable.forkJoin
似乎做這項工作的方法。所以在我的部分,我接着說:
import { Observable } from 'rxjs/Rx';
// ...
ngOnInit() {
Observable.forkJoin(
this.instrumentService.current,
this.tuningService.tunings
).subscribe(
data => {
console.log(data);
}
);
}
Ajax請求被髮送,但我從來沒有在subscribe
回調傳遞。
如果我嘗試執行每個請求separatly正常工作:
this.instrumentService.current.subscribe(instrument => {
console.log(instrument);
this.instrument = instrument;
});
this.tuningService.tunings.subscribe(tunings => {
console.log(tunings);
this.tunings = tunings;
});
在數據服務(instrumentService
和tuningService
),該Observable
聲明是這樣的(錯誤的可能來源,不知道):
private _tunings: BehaviorSubject<Tuning[]> = new BehaviorSubject([]);
/**
* Class constructor.
*
* @param {ApiService} apiService
*/
constructor (private apiService: ApiService) {
this.getAll().subscribe(tunings => this._tunings.next(tunings));
}
public get tunings() {
return this._tunings.asObservable();
}
public getAll(): Observable<Tuning[]> {
return this.apiService.call(this.url);
}
的apiService
負責調用內置的角度http
服務。
就是這樣。我的一個'BehaviorSubject'使用'null'作爲初始狀態。使用'zip'方法可以正常工作。謝謝。 – Elorfin