Dynami c количество последовательных HTTP-запросов в Angular - PullRequest
0 голосов
/ 04 марта 2020

Это мой первый вопрос, извините, если он недостаточно подробен.

Я хочу сделать динамическое c количество запросов последовательно (может быть много) для получения данных,

Мне нужно, чтобы эти данные собирались из каждого запроса и возвращались в качестве окончательной наблюдаемой в конце последнего запроса.

Я пытался использовать forkJoin для объединения запросов, хотя , это не делает каждый запрос последовательно, а затем также concat, который испускается и наблюдается после каждого запроса.

1 Ответ

2 голосов
/ 04 марта 2020

Вы хотите:

  • Создать произвольное количество последовательных HTTP-запросов (я полагаю, на основе некоторого массива)
  • Возвращать массив результатов

Я бы использовал concat в сочетании с toArray здесь. concat будет выполнять запросы последовательно, а toArray будет выдавать массив, когда все ответы доступны.

// some dynamic array
const source = [ 1, 2, 3, 4, 5 ];

const observables = source.map(x => this.http.get('some url'));
concat(
  ...observables
).pipe(
  toArray()
).subscribe(responses => {
  console.log(responses);
  // array of results
});

DEMO: https://stackblitz.com/edit/angular-s1fdxj

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...