Оправить ajax запрос на сервер в цикле
Как правильно остановить цикл и дождаться ответа от сервера?
Есть массив
const arr = [1, 2, 3];
Проходясь по нему в цикле
for(let i = 0; i < arr.length; i++){
ajaxFunction();
}
Как дождаться ответа перед повторным выполнением фукции?
Ответы (2 шт):
Автор решения: Алексей Бабыкин
→ Ссылка
Вы можете сделать свою функцию асинхронной добавив async/await.
И затем вызвать её с например в самовызывающейся функции.
let ajaxFunction = async () => { await fetch('google.com').then(res => console.log(res))}
const arr = [1, 2, 3];
(async () =>{
for(let i = 0; i < arr.length; i++){
console.log('new');
await ajaxFunction();
}
})();
Автор решения: doox911
→ Ссылка
Вариант 1:
const f = () => new Promise(resolve => setTimeout(() => resolve('Tik'), 1000));
const af = [
f,
f,
f,
];
async function start() {
for (const item of af) {
const r = await item();
console.log(r);
}
}
start();
Вариант 2:
const f = () => new Promise(resolve => setTimeout(() => resolve('Tik'), 3000));
const af = [
f(),
f(),
f(),
];
Promise.all(af).then(() => console.log('Finished'));