Каким образом я могу получить данные с сервера и обработав их в цикле отправить другие запросы?

Добрый день, задача заключается в том, что надо получить список id`шников делая запрос по API, а затем иттерируя каждый id отправлять с ним также запрос по API, ответ заносить в массив
idArr представляет собой список из обычных id, перебирая которые можно получить список объектов с этим id
Я понимаю, что цикл у нас синхронный поэтому ответ не успеваю добавлять. Попробовал сделать функцию асинхронной, но результат такой же

Дополнительно:

Зачем ты обернул фетч в промис?

  • Асинхронный запрос, я же не знаю сколько будет идти ответ от сервера
  • pinkhead_psd, Имеется ввиду что fetch сам по себе является промисом...
  • Понял, принял
  • накидаю общую идею:

    Идея следующая:
    1. первый фетч возвращает вам промис с массивом айдишников
    2. следующий чанк мапит айдишники в новые промисы, которые уже по каждому айдишниику вместо себя возвращают промис с данными.
    3. в итоге anyFetch там, где уже надо работать с конечными данными, засовываем в Promise.All, чтобы дождаться всех данных и в чанке делаем с этими данными doSomething

    Ответы:

    может быть какой-то очередью воспользоваться? пусть отдельный воркер с каждым api запросом разбирается. и потом в какую-то табличку результаты добавляет. и потом уже смотреть что в табличке появилось и работать с этим.

    • Да проблема, что я даже не могу использовать await на втором уровне вложенности. Единственное что приходит на ум это использовать два промиса - первый отдает список id, а второй уже внутри их перебирает и делает запросы. Потом через Promise.all уже выводит результат
    • pinkhead_psd, я про то, что может как-то иначе на задачу посмотреть, не как в линейном программировании? поменяйте архитектуру. Что будет, если все вызовы api обработать не сразу, а в несколько этапов? думаю, ничего страшного не случится. а в таком случае и цепочка промисов не нужна.

     

    Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

     

      • Каким образом я могу получить данные с сервера и обработав их в цикле отправить другие запросы?Есть ответ
      • 09.04.2024
      Ответить

      Для получения данных с сервера и последующей обработки их в цикле для отправки других запросов, вам нужно воспользоваться асинхронными запросами. В зависимости от языка программирования, который вы используете, существуют различные способы реализации этой задачи. Ниже приведен пример решения на языке программирования PHP с использованием cURL:

      В данном примере мы отправляем запрос на сервер, получаем данные в формате JSON, преобразуем их в массив и перебираем в цикле. Для каждого элемента массива мы формируем данные для нового запроса на другой сервер и отправляем его с использованием cURL. После обработки ответа на запрос, вы можете добавить свою логику обработки данных.

      Убедитесь, что у вас включены расширения PHP cURL для работы с сетью. В случае использования другого языка программирования, необходимо выбрать соответствующий инструмент для работы с HTTP запросами.

      • Каким образом я могу получить данные с сервера и обработав их в цикле отправить другие запросы?Есть ответ
      • 07.04.2024
      Ответить

      Для того чтобы получить данные с сервера и обработать их в цикле для отправки других запросов, вам необходимо использовать асинхронные запросы. В случае использования языка программирования PHP, вы можете использовать библиотеку cURL для выполнения HTTP запросов.

      Примерно код на PHP для выполнения запроса на сервер и обработки данных в цикле может выглядеть следующим образом:

      В данном примере мы используем cURL для выполнения запроса на сервер, получения данных и обработки их в цикле. Затем мы отправляем другие запросы на другой сервер с обработанными данными.

      Убедитесь, что в вашем PHP скрипте включена поддержка cURL, и что вы обрабатываете ошибки запросов и ответов сервера для обеспечения надежности вашего кода.

    Оставить комментарий