2
基於我想構建forkJoin()方法的函數的參數。Conditional Observable.forkJoin()building
例如:
- 如果參數1是空=>不把一個http請求爲它 forkJoin()
- 內如果參數2爲空=>不把一個http請求它 的forkJoin()內
代碼:
getAllByIds(parameter1: any, parameter2: any) {
let itemList = new Array();
return Observable.forkJoin(
this.http.get('rest/fillin/ids/' + parameter1) // don't put this request for parameter1 if it is empty
.map((res: Response) => res.json()),
this.http.get('rest/textitem/ids/' + parameter2) // don't put this request for parameter2 if it is empty
.map((res:Response) => res.json())
).map(
data => {
itemList.push(data[0]);
itemList.push(data[1]);
return itemList;
}
);
}
那麼,是否有可能像這樣構建forkJoin()?
我使用第一種解決方案。它工作正常,但是當'sources'數組不包含任何元素時,我會得到'EXCEPTION:_b is undefined'錯誤。是否因爲我沒有對'sources'數組進行任何空的檢查? –
一個空的數組源應該不成問題。這實際上是一個有效的用例,並經過測試https://github.com/ReactiveX/rxjs/blob/master/spec/observables/forkJoin-spec.ts#L199。你能讓jsbin重現這個問題嗎? – martin
我現在確定它不與空請求數組相關聯。我會看看其他地方。非常有用的評論;) –