> В чем разница последовательных и параллельных запросов и как реализовать параллельные запросы в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: циан, Яндекс
Стек: JavaScript
> Пример ответа
Основное различие между последовательными и параллельными запросами - в способе выполнения и времени ожидания. Последовательные запросы выполняются один за другим: следующий начинается только после завершения предыдущего. Это приводит к суммированию времени всех запросов (например, три запроса по 1 секунде займут 3 секунды). Параллельные запросы запускаются одновременно, и общее время равно времени самого медленного запроса (в примере - около 1 секунды). Параллельный подход эффективнее для независимых операций, но может нагружать сеть или сервер.
В JavaScript параллельные запросы реализуются с помощью Promise.all, Promise.allSettled или Promise.race. Пример с fetch:
JAVASCRIPT// Параллельные запросыconst urls = ['/api/user', '/api/posts', '/api/comments'];const requests = urls.map(url => fetch(url).then(res => res.json()));Promise.all(requests).then(([user, posts, comments]) => {console.log('Все данные получены:', user, posts, comments);}).catch(error => console.error('Ошибка в одном из запросов:', error));
Promise.all завершится, когда все запросы выполнены, или упадёт с ошибкой при первом сбое. Если нужно дождаться всех, даже при ошибках, используйте Promise.allSettled. Для последовательных запросов применяется async/await с циклом:
JAVASCRIPTasync function sequentialRequests(urls) {const results = [];for (const url of urls) {const response = await fetch(url);results.push(await response.json());}return results;}
Выбор зависит от задачи: параллельные - для независимых данных, последовательные - когда результат одного запроса нужен для другого.
> Похожие задачи по frontend
Использовал ли Jest
Что такое event bubbling и event capturing в JavaScript
Как обрабатываются call stack и очереди в JavaScript
Какие проверки можно применить к массиву в JSON
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью