Як робити асинхронні запити в циклі в JavaScript
Last updated: 10.10.2025
Views: 103
Реалізація асинхронних запитів у циклі JavaScript спочатку може здатися неочевидною. Роблячи асинхронні запити в циклі JavaScript, важливо правильно їх обробляти. Це можна зробити по-різному. У цій публікації ми розглянемо 2 варіанти.
Паралельні запити з Promise.all() (найшвидший)
Якщо запити незалежні та можуть виконуватися паралельно, використовуйте для цього Promise.all(). Це дозволяє виконувати всі запити одночасно, покращуючи продуктивність.
JavaScript
const ids = [12, 23, 45, 57];
async function fetchAllData() {
const responses = await Promise.all(
ids.map((id) => {
const url = 'https://api.example.com/some/' + id;
return fetch(url).then(res => res.json());
})
);
console.log(responses); // Array of resolved responses
}
fetchAllData();
Найкраще для: Швидше виконання, коли запити не залежать один від одного.
Послідовні запити з for...of (забезпечує порядок)
Якщо запити мають виконуватися один за одним, використовуйте for...of разом з await.
JavaScript
const ids = [12, 23, 45, 57];
async function fetchSequentially() {
for (const id of ids) {
const url = 'https://api.example.com/some/' + id;
const response = await fetch(url);
const data = await response.json();
console.log(data); // Logs each response one by one
}
}
fetchSequentially();
Найкраще для: коли запити залежать від попередніх результатів або мають виконуватися в порядку.
Схожі записи:
-
Робота з файлами cookie в JavaScript
Cookie (cookie, web cookie або cookie браузера) - це рядкова інформація, яку можна зберігати в браузері і передавати на сервер. Максимальний розмір для однієї куки - 409...
-
Ітерація елементів масиву без циклу
Приклади дуже абстрактні, оскільки цикли існують. Наша умова буде такою. Потрібно вибрати всі елементи масиву за заданим атрибутом. Або, якщо сказати точніше, потрібно ві...
-
Як отримати максимальне значення в масиві JavaScript
Коротка замітка про пошук максимального значення в масиві JavaScript із числовими значеннями. Об’єкт Array в JS не має власного методу max. Щоб знайти максимальне знач...
Залишити відповідь