Комментарии 9
https://habr.com/ru/company/hexlet/blog/656003/
Наряднее есть
Я слышал о Bun и о том что он возможно уничтожит NodeJs, однако они оба для меня всего лишь бандлеры, которые нужны для фронта.
Для таких вещей как многопоточность я бы использовал язык пониже, тем более изучить ещё один яп, не такая уж сложная задача, кому интересно я выбрал Golang, хоть многие и критикуют его за синтаксис?
Я слышал о Bun и о том что он возможно уничтожит NodeJs, однако они оба для меня всего лишь бандлеры, которые нужны для фронта.
ну нода изначально и не говорит, что это лучший бек для любого проекта. Это имплементация commonjs. А как и для чего это уже ваше дело. Go, тоже всего не может и не на всех проектах)
Странно почему последнее время все кинулись изучать и спрашивать на собесах про ивент луп. До этого его не было? Надоели вопрос про замыкания?)
Тут "спрос" и "предложение" взаимно подогревают друг друга. Начали писать про евент луп, больше синьоров/тимлидов обратили на это внимание и стали спрашивать на собесах, соответственно выросла нужда в разъяснили (спрашивают же), и стали писать ещё больше. А ещё, в последние годы, собес - это модный жанр на ютубе в прогерских каналах, что ускорило вышеописанный процесс.
Ну и спрашивают не просто так - всё-таки нужная штука, если чел не в курсе как это устроено, то будет делать дурацкие ошибки.
Добрый день. Некоторые уточнения по статье:
- На картинке в callstack между fn1() и fn3() должен быть вызов setTimeout(), это тоже синхронная операция, она у вас пропущена.
- В промисах resolve не с thenable объектом - синхронная операция, ваш промис будет выполнен еще до того, как вернется в переменную myPromise, и then - тоже синхронная операция, а вот что и отправиться в микротаску, так это выполнение первого аргумента then, так как промис у вас fulfilled. (Ecmascript 2021 п. 27.2.5.4.1 10c)
- Не всегда последовательность "все микротаски => 1 render-таска => 1 макротаска" является правдой для render-таска, браузер может пропускать эти таски, поэтому анимации на setTimeout очень не правильные, и лучше их делать через requestAnimationFrame
Инфа по eventloop с интернетов:
Старый видос (2014 г.) с jsconf об основе eventloop'a, устарел в плане того, что в нем нет job'ов (microtask) https://youtu.be/8aGhZQkoFbQ
Видео про eventloop посвежее jsconf (2018 г.), там есть и макротаски и микротаски и requestAnimationFrame https://youtu.be/cCOL7MC4Pl0
Отличная статья. Кратко и понятно.
JavaScript и правда не может обработать данные в несколько потоков
уже около 8 лет как может. Единственное ограничение - єто выполнение одновременно более одного jobs в рамках одного realm.
Почти четверть всей спецификации Ecma об єтом.
Базовое понимание принципа Eventloop