Одновременное получение и размещение вызовов на отдых, как реализовать - PullRequest
1 голос
/ 17 мая 2019

У меня есть массив, содержащий 100 записей, содержащих один идентификатор поля, поэтому мне нужно взять идентификаторы из указанного выше массива и выполнить GET rest call для получения подробностей, затем, как только появится информация, мне нужно сделать PUT вызов.

в настоящее время его синхронное поведение, то есть запросы идут как ниже.Запись 1 - GET Record 1 - PUT Record 2 - GET Record 2 - PUT Record 3 - GET Record 3 - PUT и т. Д.3, так что остальные звонки должны быть похожи.Запись 1 - GET Запись 2 - GET Запись 3 - GET Запись 1 - PUT Запись 2 - PUT Запись 3 - PUT

затем следующая порция записей

1 Ответ

1 голос
/ 17 мая 2019

Вы можете buffer входящие значения с помощью bufferCount(), затем forkJoin вызовов, сглаживать поток и повторять снова для следующих вызовов:

const sub = source.pipe(
  bufferCount(2),
  concatMap(ids => forkJoin(ids.map(id => ajax.get(`https://jsonplaceholder.typicode.com/todos/${id}`)))),
  map(data => data.map(res => res.response.id)),
  concatMap(ids => forkJoin(ids.map(id => ajax.get(`https://jsonplaceholder.typicode.com/todos/${id}`)))),
  map(data => data.map(res => res.response.title)),
)

Я сделал DEMO для игры с

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