@cocomuffin

RXJS: как правильно параллельно отправить несколько запросов?

Доброго времени суток!

Кейс такой: есть http-запрос к серверу, который возвращает ID рандомного героя.
Как только я получаю ID, мне надо параллельно отправить два новых запроса на получение дома героя и его состояния.
Как только я получу удачный ответ с обоих запросов, хочу вывести в консоль DONE.

Не соображу, как правильно вторым шагом отправить два запроса вместо одного (например, mergeMap отправит только один запрос)

const getCharacter$ = this.http.get('api/characters');

const getCharacterHome$ = (id) => this.http.get(`api/homes/${id}`);
const getCharacterState$ = (id) => this.http.get(`api/states/${id}`);

getCharacter$.pipe(
        map(result => result.id),
        //mergeMap, concatMap, forkJoin, ... ?
	mergeMap(id => // Тут надо отправить два запроса... )
).subscribe(ok => console.log('DONE'), error => console.log(error));
  • Вопрос задан
  • 674 просмотра
Решения вопроса 1
@cocomuffin Автор вопроса
О, кажется так прокатило:

getCharacter$.pipe(
        map(result => result.id),
        mergeMap(id => {
return forkJoin(getCharacterHome(id), getCharacterState(id))} )
).subscribe(ok => console.log('DONE'), error => console.log(error));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы