TGViewer
CodeRoll | Frontend CodeRoll | Frontend @coderoll · 4.06K subscribers
Post #2346 1.29K
Пояснение к ответу

Сначала мы вызываем функцию setTimeout. Однако, ее колбек выполняется последним. Это происходит из-за того, что в браузерах у нас имеется не только движок для запуска (выполнения) кода, но и WebAPI. WebAPI предоставляет нам setTimeout и много других возможностей, например, DOM. После того, как setTimeout отправляется в WebAPI, функция bar удаляется из стека вызовов (call stack). После этого вызывается функция foo, и first выводится в консоль. foo удаляется из стека и вызывается функция baz. third выводится в консоль. WebAPI отправляет функцию обратного вызова setTimeout в очередь событий (task queue, второе слово читается как "кью"). Цикл событий (event loop) проверяет стек вызовов и очередь задач. Если стек оказывается пустым, то в него помещается первый элемент из очереди. Вызывается функция bar и в консоль выводится second.
  • 👍 15
More from @coderoll
  1. Oct 17, 2026❓ Что такое Callback Hell? Ответ: Callback Hell — это ситуация, когда код становится трудн…
  2. Oct 16, 2026Используем принципы “Чистого кода” в контексте JavaScript. Функции ❗️ Не создавайте глобал…
  3. Oct 15, 2026⚡️ В сети начали массово сливать IT-курсы и книги известных онлайн школ Вот отсортированна…
  4. Oct 15, 2026❓ Как работает метод map? Ответ: Метод map создаёт новый массив, применяя указанную функци…
  5. Oct 14, 2026АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного об…
  6. Oct 14, 2026GitHub Copilot – AI-помощник для написания кода Позволяет писать код быстрее, учиться на п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →