Что такое синхронность в JavaScript?
Поскольку его базовый язык JavaScript является синхронным. Синхронный означает, что код выполняется в определенной последовательности инструкций, заданных в программе. Каждая инструкция ожидает, пока предыдущая инструкция завершит свое выполнение.
См. следующий пример кода синхронного JavaScript — Пример кода.
console.log('First'); console.log('Second'); console.log('Third');
Вывод —
First Second Third
В приведенном выше фрагменте кода JavaScript даны три строки инструкций. Каждая инструкция запускается один раз после выполнения предыдущей инструкции. Из-за этой синхронной природы javascript мы получаем вывод журналов консоли в той последовательности, которую мы указали в программе.
Когда мы говорим о синхронном и асинхронном JavaScript, их отличает последовательность выполнения инструкций в программе.
Что такое асинхронность в JavaScript?
Как мы видели в примере с синхронным кодом, все инструкции в программе выполняются одна за другой, и каждая инструкция ожидает выполнения предыдущей инструкции. Из-за характера синхронного программирования иногда важные инструкции блокируются из-за некоторых предыдущих инструкций, что вызывает задержку в пользовательском интерфейсе. Асинхронное выполнение кода позволяет немедленно выполнять следующие инструкции и не блокирует поток из-за предыдущих инструкций.
См. следующий пример кода, чтобы понять, как javascript работает асинхронно:
Пример кода —
console.log('First'); // Set timeout for 2 seconds setTimeout(() => console.log('Second'), 2000); console.log('Third');
Вывод —
First Third Second
Как мы видим в выводе приведенного выше примера кода, третий печатается раньше второго из-за асинхронного выполнения кода. Здесь функция setTimeout() ждет 2 секунды, а тем временем следующая инструкция выполняется, не дожидаясь завершения выполнения предыдущей.
В чем разница между синхронным и асинхронным JavaScript?
Синхронно
- Инструкция в синхронном коде выполняется в заданной последовательности.
- Каждая операция ожидает завершения предыдущей операции.
- В большинстве случаев JavaScript используется как синхронный код.
Асинхронный
- Следующая операция может выполняться, пока предыдущая операция все еще обрабатывается.
- Инструкции в асинхронном коде могут выполняться параллельно.
- Асинхронный JavaScript предпочтительнее в ситуациях, когда выполнение блокируется на неопределенный срок.
Зачем использовать асинхронные вызовы?
- Асинхронные методы помогают оптимизировать выполнение ресурсов, что позволяет создавать масштабируемые приложения. Они используются для выполнения трудоемких задач, таких как открытие больших файлов, подключение к удаленным компьютерам, выполнение запросов к базе данных и вызов веб-служб и веб-форм ASP.NET.
Примеры синхронного в JavaScript
Ниже приведены некоторые примеры использования синхронного JavaScript:
Синхронное чтение файлов
Рассмотрим следующий пример кода, здесь синхронный javascript используется для чтения данных из файла file.txt. Здесь мы используем функцию readFileSync(), которая работает синхронно без каких-либо обещаний.
Пример кода —
const fs = require("fs"); try { // Storing the data form file.txt file in data const data = fs.readFileSync("./file.txt", "utf8"); console.log(data); // To show the data } catch (error) { console.error(error); // if error is catched } Hello, text from file.txt
Как вы можете видеть в приведенном выше выводе, мы читаем данные из файла file.txt с помощью функции readFileSync(), присутствующей в модуле fs JavaScript.
Заключение
- Javascript — это синхронный однопоточный язык, но с помощью цикла обработки событий и промисов JavaScript используется для асинхронного программирования.
- В этой статье мы обсудили синхронный и асинхронный javascript с помощью примеров кодирования.
- Синхронный означает, что код выполняется в определенной последовательности инструкций, заданных в программе, тогда как асинхронное выполнение кода позволяет немедленно выполнять следующие инструкции.
- Благодаря асинхронному программированию мы можем избежать блокировки задач из-за предыдущих инструкций.
- Как синхронный, так и асинхронный javascript полезен в разных сценариях, как мы видели в приведенных примерах.