Как сделать запрос параллельно через ajax

К примеру, есть инпут, я ввожу cat, dog и в качестве запроса должно отправиться не "htpp://api&q=cat, dog", а по отдельности сначала "htpp://api&q=cat", а затем "htpp://api&q=dog"


Ответы (1 шт):

Автор решения: DiD

А в чем собвственно вопрос?

let [resCat,resDog] = await Promise.all([
      fetch('htpp://api&q=cat'),
      fetch('htpp://api&q=dog')
])

Запросы запустятся параллельно, второй не будет ожидать первый. Promise.all() для ожидания результатов обоих запросов.

Если запускаете из не-асинхронной функции, то используйте вместо await .then().

 let urlList = 'cat, dog,cow ,parrot'.split(/\s*\,\s*/)
   .map(query => 'http://google.com?q='+query);
 Promise.all(urlList.map(url => Axios.get(url)))
   .then(([res1,res2,res3])=>{
     /* обработка результата */
  })
  .catch(err => {
     /* обработка ошибки */
  });

В массиве может быть сколько угодно url, массив может быть сформирован заранее.

→ Ссылка