При создании веб-приложения я сталкивался с этой проблемой бесчисленное количество раз. Вам нужно дождаться возврата вызовов API для выполнения других действий.

Допустим, мы пытаемся получить пользователей github с помощью git API, и для каждого пользователя мы хотим получить количество связанных репозиториев. Как бы мы это сделали? ну есть несколько способов

Использование mergeMap

как вы можете видеть здесь, мы используем два оператора: map и mergeMap.

Оператор карты выполнит действие для каждого извлеченного пользователя: он изменит результат.

Здесь mergeMap помогает нам, вытаскивая каждого пользователя и подписываясь на внутренний наблюдаемый объект (репозитории для каждого пользователя). Теперь у нас есть два вложенных наблюдаемых объекта, и наш код стал немного более сжатым и читаемым.

Использование forkJoin

Здесь forkJoin подпишется на все вызовы в параллельном режиме и будет ждать их возврата, чтобы вернуть их вам.

Следовательно, он возвращает массив данных со всеми результатами всех вызовов.

Поэтому, если вы хотите объединить вызовы в цепочку, вам следует использовать mergeMap (например, вы хотите, чтобы репозитории для каждого пользователя), если вам нужны два независимых вызова, чтобы вернуться и одновременно избавиться от их результата, тогда вы должны пойти с forkJoin.