tgoop.com/frontendInterview/4465
Create:
Last Update:
Last Update:
Чем синхронный код отличается от асинхронного ?
Синхронный и асинхронный код отличаются тем, как они выполняются и управляют операциями ввода-вывода, временем ожидания и выполнением задач. Давайте рассмотрим их различия подробно.
Синхронный код
Выполняется последовательно, строка за строкой. Это означает, что каждая операция должна завершиться, прежде чем начнется следующая. Если одна операция занимает много времени (например, запрос к серверу или чтение файла), выполнение всей программы будет приостановлено, пока эта операция не завершится.
Пример синхронного кода:
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
BY Frontend Interview - собеседования по Javascript / Html / Css

Share with your friend now:
tgoop.com/frontendInterview/4465