Как JavaScript работает во время выполнения | Как работает цикл событий

Как работает JavaScript? Этот ответ следует знать до начала работы с JavaScript.

JavaScript всегда синхронный и однопоточный. Это означает, что он может выполнять одну вещь за раз. Но есть очень хорошее решение для обработки асинхронных вещей. Например:

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

Цикл событий устанавливает расписание работы кода JavaScript на основе приоритета. Существует два этапа выполнения кода JavaScript: стек и очередь. Элементы стека сначала выполняются с помощью системы LIFO, а затем с помощью цикла событий элементы очереди выполняются с помощью системы FIFO.

Мы можем рассмотреть пример ниже, чтобы узнать, что такое стек? И его работа-

функция первая() {

второй();

console.log("Первая функция");

console.log("Окончательный результат");

}

функция секунда() {

третий();

console.log("Вторая функция");

}

функция третья() {

console.log("Третья функция");

}

//Вызов первой функции

первый();

Результат:

  • Третья функция
  • Вторая функция
  • Первая функция
  • Конечный результат

СТЕК:Здесь в стеке сначала идет функция first(), затем вторая() функция и, наконец, третья() функция. После выполнения третьей функции он вернется ко второй функции, пока выполнение второй функции будет выполнено, он вернется к первой функции и завершит код. Итак, эти коды проходят через систему LIFO в стеке. И это обычный синхронный процесс. Теперь мы можем посмотреть на другой пример, чтобы узнать, как асинхронные операции обрабатываются синхронно в JavaScript.

console.log("Первая функция");

console.log("Вторая функция");

console.log("Третья функция");

setTimeout(() =› console.log("Это первая функция setTimeout"), 5000);

setTimeout(() =› console.log("Это вторая функция setTimeout"), 5000);

console.log("Четвертая функция");

console.log("Пятая функция");

Результат:

  • Первая функция
  • Вторая функция
  • Третья функция
  • Четвертая функция
  • Пятая функция
  • Это первая функция setTimeout
  • Это вторая функция setTimeout

Здесь первые три строки кода правильно выполняются в стеке. Затем в следующих двух строках есть две функции setTimeout. Эта функция не выполняется мгновенно, для ее выполнения требуется некоторое время. Поскольку JavaScript является синхронным, он не может выполнять несколько задач одновременно, а также невозможно дождаться, пока текущая операция перейдет к следующему шагу. Вот почему эти функции setTimeout передаются в очередь. После выполнения операций со стеком операции с очередью выполняются по принципу FIFO.

QUEUE: после последовательного выполнения первых трех строк кода следующие две строки кода отправляются в очередь. Поскольку они не могут выполняться последовательно, они должны выполняться асинхронно. После выполнения операций стека эти блоки кодов будут помещаться в стек один за другим и выполнять операции. И вот как JavaScript обрабатывает асинхронную операцию с помощью цикла событий.