Вы должны использовать оператор switchMap()
rxjs, который поможет вам получить первый ответ, а затем нацелиться на второй запрос. И вы можете отменить запрос, если вам не нужно.
Приведенные ниже коды разделены на множество частей, чтобы их было легко понять. Если хотите, вы можете объединить все.
// Define both requests
const firstReq = this.firstService.get$(this.orderNumber)
const secondReq = this.secondService.getReasons$(this.firstModel);
// combined has both response
const combined= firstReq.pipe(switchMap(firstData =>{
return secondReq ;
}))
combined.subscribe()
Для удобства вы можете использовать оператор tap
, чтобы проверить оба ответа
const combined= firstReq.pipe(switchMap(firstData =>{
return secondReq.pipe(tap(secondData =>{
console.log('First request data',firstData);
console.log('Second request data',secondData);
}))
}))
combined.subscribe()