내가 JSON 반환이 API 호출을 말해봐 행을 찾은 다음 detailId를 가져 오는 각 행 객체를 반복하여 rowDetails를 다시 호출하고 행 객체에 세부 정보를 첨부합니다. 최종 구조는과 같이 방출 할 필요가 : 각 1에서Observables은/RxJS와 각도에서 두 종속 API 호출을 병합
{
{"row": 1, "detailId": a, "details": { row details}}
{"row": 2, "detailId": b, "details": { row details}}
}
내가 완료 모든 호출을 기다리는 q.allSettled을 사용합니다.
나는 이것을 관측 할 수있는 방법으로하려고 노력하고 있으며, 나는 개념적으로 실질적으로 어려움을 겪고있다. 나는 당신이 실제로 최종 제품으로 병합 된 "스트림"을 방출하기로되어있는 방법을 얻지 못합니다.
나는 대략 시도했다 :
this.http
.get('rows')
.map(res => res.json())
.flatMap(group => this.http.get('rowDetails' + detailId))
.map(res => res.json()).
.subscribe(res => console.log(res))
그냥 rowDetails 전화 방출 구독합니다. 행의 각 객체를 반복하고 최종 제품의 결과를 병합하는 동안 다른 호출에 대한 detailId를 가져 오는 방법은 무엇입니까? 어떤 도움이라도 대단히 감사하겠습니다.
두 번째'get'은 실제로 첫 번째 결과에 의존합니까? 그렇지 않다면 Observable.combineLatest가 최상의 선택 인 것 같습니다. – jonrsharpe
그렇습니다. 각 행 객체의 detailId가 필요합니다. 특정 행에 대한 행 세부 정보를 가져 오기 위해 호출합니다. – AnotherMike
첫 번째 호출의 각 결과에 대해 하나의 호출을 분할하고 모든 결과를 함께 다시 결합 하시겠습니까? – jonrsharpe