Что такое синхронность в 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?

Синхронно

  1. Инструкция в синхронном коде выполняется в заданной последовательности.
  2. Каждая операция ожидает завершения предыдущей операции.
  3. В большинстве случаев JavaScript используется как синхронный код.

Асинхронный

  1. Следующая операция может выполняться, пока предыдущая операция все еще обрабатывается.
  2. Инструкции в асинхронном коде могут выполняться параллельно.
  3. Асинхронный JavaScript предпочтительнее в ситуациях, когда выполнение блокируется на неопределенный срок.

Зачем использовать асинхронные вызовы?

  1. Асинхронные методы помогают оптимизировать выполнение ресурсов, что позволяет создавать масштабируемые приложения. Они используются для выполнения трудоемких задач, таких как открытие больших файлов, подключение к удаленным компьютерам, выполнение запросов к базе данных и вызов веб-служб и веб-форм 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 полезен в разных сценариях, как мы видели в приведенных примерах.