尋求與可觀察到的HTTP請求序列,我希望有兩個HTTP調用的API,第二取決於第一。第一個返回一個Url數組,第二個返回該數組中每個url的請求,然後返回流中的響應。如果我硬編碼像,所以我回來了變化的要求的一個標題之一,我在尋找:角2鏈接的HTTP GET與幫助,可迭代陣
search(character): Observable<any> {
let that = this
let queryUrl: string = character.url;
return this.http.get(queryUrl)
.map((response: Response) => {
this.characterResults = response.json().films
return this.characterResults
//Example response:
// ["https://api.com/films/1", "https://api.com/films/2", "https://api.com/films/3", "https://api.com/films/4"]
})
.flatMap((film) => {
return that.http.get(film[0])
.map((response: Response) => {
return response.json().title
})
})
}
getApiData(character) {
this.apiService.search(character)
.subscribe((results) => { // on sucesss
console.log(results)
},
(err: any) => { // on error
console.log(err);
},
() => { // on completion
console.log('complete')
}
);
但任何企圖使用的forEach在該數組迭代,然後讓所有的HTTP調用給我這個錯誤:
browser_adapter.js:84 EXCEPTION: TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
理想情況下,我想一個優雅的方式,使在第一次調用的結果陣列並行的後續調用,但我似乎無法找出哪些rxJs的幾十種方法可以幫助我做到這一點。任何人都可以給我任何幫助嗎?
'flatMap'應該返回Observable,但是你的代碼不會返回任何東西。也許這就是問題所在。 –
代碼已經更新,你的當前位置對 –