0
我嵌套了api請求,並將它們拆分,就像我用Promise(.then)對flatMap運算符做的那樣。所以這很好,但我還要檢查響應是否有效,如果不是,我會等待正確的響應,所以我添加了skipWhile運算符。在rxjs中嵌套skipWhile
init(): Observable<any> {
return this.loadDataA();
}
loadDataA(): Observable<any> {
return this._serviceA.loadData()
.skipWhile((foo) => foo === undefined)
.flatMap((foo) => this.loadDataB(foo.importantProp));
}
loadDataB(important: string): Observable <any> {
return this._serviceB.loadData(important)
.skipWhile((bar) => bar === undefined)
.map((bar) => true);
}
的問題是,在功能上loadDataA的第一skipWhile工作像它應該,它不進入flatMap如果響應是不確定的。 loadDataB中的skipWhile運算符不會進入.map,但會返回到loadDataA的flatmap,以便它永遠不會執行loadDataB函數中的.map。那麼我怎樣才能執行一個嵌套的skipWhile行爲?謝謝!
與過濾運營商的問題在於,它會過濾未定義的響應,但我不會收到有效的流。隨着skipWhile我會跳過的答覆,直到有效的人收到。 – derEntwickler
我不認爲我理解你剛剛說的 - 也許你可以爲你的案例繪製一個流圖 - 但是一個過濾器對它將接收的數據沒有影響 - 它將接收從其源發出的所有數據,它只會省略某些數據。 – olsn