Рубрики
Без рубрики

Понимание микрозакосок и задач в JS

Ну, как JavaScript Developers, мы все по привычке использовать обещания, таймеры и т. Д. Всякий раз, когда мы худеем … Теги с JavaScript, начинающими, WebDev.

Ну, как JavaScript Developers, мы все по привычке использовать обещания, таймеры и т. Д. Всякий раз, когда мы думаем о том, чтобы сделать определенный кусок кода асинхронного первым, что приходит на наш разум, использует обещания или, возможно, посетут (). Вы когда-нибудь задавались вопросом, как эти вещи работают под капотом? Я собирался через много блогов относительно исполнения очереди , MicroTasks и задания Поэтому я решил смириться с моими участиями в этом посте.

Давайте начнем с быстрого упражнения (просто почистить навыки JavaScript)

Теперь наденьте свои мыслительные шапки и подумайте, что будет выходом вышеуказанного фрагмента кода.

Правильный ответ идет как

  1. Позвоните на принтер
  2. Внутри принтера
  3. Обещание решено
  4. Тайм-аут 1.

Да, вывод не совсем то, что многое из нас должно ожидать » ♂️ 🤷. ♂. ️. Но что происходит за кулисами в JavaScript, очень занимается.

На самом деле, когда Функция принтера называется Внутри принтера зарегистрирован. Теперь важно отметить, что даже когда таймер установлен на 0 оператор журнала внутри Setimeate () выполняется после Обещание разрешено. Чтобы понять это, вам нужно знать, как цикл событий обрабатывает задачи и микрозазки. Контура событий работает непрерывно и гарантирует, что все задачи выполняются последовательно. Так что в нашем случае Setimeate () запланирован как задача, выполняемая в следующем цикле событий. Но вопрос здесь остается Как, черт возьми, пообещай перейти к заявлению первым?

Обещания поставлены в очереди как микрозаски. MicroTasks выполняются сразу после выполнения в данный момент выполняющих скрипт и, следовательно, обещания решаются в одном и том же контуре событий. Призыв .тогда () Полощает обещание в очереди MicroTask. Очередь MicroTask обрабатывается после обратных вызовов до тех пор, пока нет другого JavaScript не является средним исполнением. Вот почему Обещание решено вошел в систему ранее Тайм-аут 1 Отказ

Суть -:

  • Задачи должны ждать следующего раунда исполнения
  • Микрозаски могут выполняться в том же раунде после того, как текущий скрипт заканчивает выполнение

Надеюсь, я мог бы объяснить тему простым, но эффективным образом. Пока !!!

Оригинал: “https://dev.to/kpulkit29/understanding-microtasks-and-tasks-in-js-ba2”