TGViewer
Frontend Interview - собеседования по Javascript / Html / Css Frontend Interview - собеседования по Javascript / Html / Css @frontendinterview · 10.4K subscribers
Post #4465 1.81K
​Чем синхронный код отличается от асинхронного ?

Синхронный и асинхронный код отличаются тем, как они выполняются и управляют операциями ввода-вывода, временем ожидания и выполнением задач. Давайте рассмотрим их различия подробно.

Синхронный код
Выполняется последовательно, строка за строкой. Это означает, что каждая операция должна завершиться, прежде чем начнется следующая. Если одна операция занимает много времени (например, запрос к серверу или чтение файла), выполнение всей программы будет приостановлено, пока эта операция не завершится.

Пример синхронного кода:
function syncTask() {
console.log('Начало');
for (let i = 0; i < 1000000000; i++) { /* Длительная операция */}
console.log('Конец');
}

syncTask();
console.log('Это будет выполнено после syncTask');

В этом примере, пока длительная операция (цикл) не завершится, программа не продолжит выполнение и следующий console.log не будет вызван.

Асинхронный код
Позволяет выполнять другие операции, не дожидаясь завершения текущих долгих операций. Это особенно полезно для задач ввода-вывода, работы с сетью и других операций, которые могут занять значительное время. Обычно используют коллбеки, промисы или async/await для обработки результата по завершении.

С использованием коллбеков:
console.log('Начало');

setTimeout(() => {
console.log('Асинхронная операция');
}, 1000);

console.log('Конец');

В этом примере setTimeout ставит задачу на выполнение через 1 секунду, но код продолжает выполняться дальше, и console.log('Конец') вызывается до завершения асинхронной операции.

С использованием промисов:
console.log('Начало');

new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Асинхронная операция завершена');
}, 1000);
}).then(message => {
console.log(message);
});

console.log('Конец');


С использованием async/await:
console.log('Начало');

async function asyncTask() {
await new Promise(resolve => setTimeout(resolve, 1000));
console.log('Асинхронная операция завершена');
}

asyncTask();
console.log('Конец');


Основные отличия
- Синхронный код: Выполняется последовательно. Каждая операция должна завершиться до начала следующей.
- Асинхронный код: Позволяет выполнять другие операции, пока текущая не завершится.

- Синхронный код: Может блокировать выполнение всей программы, если операция длительная.
- Асинхронный код: Не блокирует выполнение программы. Другие операции могут выполняться параллельно.

- Синхронный код: Время ожидания одной операции может замедлить всю программу.
- Асинхронный код: Ожидание длительных операций не мешает выполнению других задач.

- Синхронный код: Проще для понимания и отладки, так как выполняется последовательно.
- Асинхронный код: Может быть сложнее для понимания из-за необходимости управления состоянием и ожиданием результатов асинхронных операций.

👉 @frontendInterview
  • 👍 7
More from @frontendinterview
  1. Oct 16, 2026🧩 Как сделать, чтобы фоновый узор не обрезался снизу У секции повторяющийся фоновый узор,…
  2. Oct 15, 2026АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного об…
  3. Oct 14, 2026✨ Скроллбар, который следит за прокруткой без JavaScript Свой скроллбар обычно рисуют так:…
  4. Oct 14, 2026Атмосфера HolyJS: ради чего стоит приехать на площадку 23–24 октября в Санкт Петербурге и…
  5. Oct 12, 2026✨ CSS может заметить, что элементы вот-вот столкнутся Сбоку от секции с карточками висит д…
  6. Oct 9, 20265 офферов получили наши ребята на прошлой неделе Оффер на 4,2k долларов Оффер на 5k евро О…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →