Использование RXJS для выполнения двух последовательных http-вызовов и возврата результата только первого - PullRequest
0 голосов
/ 25 сентября 2018

Я использую RXJS 6 вместе с Angular 6 HttpClient и пытаюсь выполнить два http-вызова последовательно.

  • Мне нужно вернуть результат только первого вызова ,
  • Первый вызов должен быть выполнен до второго .

Я думал об использовании метода касания следующим образом:

someMethod(items: Item[]): Observable<Item[]> {
   const one = this.http.put<{ items: Item[] }>('urlOne', items);
   const two = this.http.put<void>('urlTwo', items);

   return one.pipe(
     mergeMap((res)=> res.items),
     tap(two)
   );
}

Есть ли способ лучше?Если так, то как?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете использовать map и просто игнорировать второй результат:

one.pipe(
  mergeMap((res) => two.pipe(
    mapTo(res)
  ),
);
...