2017-09-20 69 views
0

所以我正在處理數據處理管道。只有一個項目,它運作良好。當我嘗試使用一系列項目執行相同的過程時,它開始中斷。以下是迄今爲止我用過的一款產品。RXJS - 處理數組項目

this.thingService.getThingById(thing.id) 
    .flatMap(i => { 
     return this.createThingVM(i) 
    }) 
    .flatMap(j => { 
     return this.getMoreInfoAboutTheThing(j) 
    }) 
    .flatMap(z => { 
     return this.getMoreThingData(z) 
    }) 
    .flatMap(y => { 
     return this.finalThingProcessing(y) 
    }) 
    .subscribe(x => console.log('Single thing' + JSON.stringify(x))); 
} 

每一步都需要Thing and returns an Observable<Thing>

處理事情需要特定的順序。當我嘗試先做concatmap時,出現錯誤You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

有什麼建議嗎?

+0

你的處理步驟是真正的創造價值流還是他們只是單一的值包裹在'Observable'中?很難想象一遍又一遍地擴展和壓扁你的數據流會產生有意義的輸出,這可能是處理多個項目會給你帶來麻煩的原因。 – concat

+1

很難幫助你,如果你不告訴我們所有這些函數返回什麼或你的「破碎」代碼看起來像 – Brandon

+0

爲了澄清,他們的價值包裹到Observable 。 – Ben

回答

0

我想通了。有些方法不正確。我需要在所有情況下都返回一個Observable,偶爾這些HTTP請求也會失敗。