Проверяет понимание последовательного выполнения асинхронных операций в цикле for...of и его влияние на параллельность промисов.
Когда вы используете await внутри цикла for...of, каждая итерация приостанавливает выполнение функции до тех пор, пока промис не разрешится. Это приводит к последовательному, а не параллельному выполнению асинхронных задач. Например, если у вас есть массив URL-адресов для загрузки данных, каждый запрос будет ждать завершения предыдущего, что увеличивает общее время выполнения.
const urls = ['url1', 'url2', 'url3'];
async function fetchSequentially() {
for (const url of urls) {
const response = await fetch(url);
console.log(await response.json());
}
}
// Каждый fetch ждёт завершения предыдущегоТакой подход полезен, когда каждая операция зависит от результата предыдущей (например, цепочка вычислений). Однако для независимых задач лучше использовать Promise.all для параллельного выполнения, что сокращает время ожидания.
Используйте await в for...of для последовательных зависимых операций, но для параллельных независимых задач применяйте Promise.all или Promise.allSettled.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию