Как сделать запрос параллельно через 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, массив может быть сформирован заранее.