Вадим
Всем привет. Есть вопрос на который почему-то мне сложно найти ответ, может здесь найдется кто-то кто мне подскажет.
В общем, я думаю все знают про event loop и про принцип его работы, но как я начал читать про nodeJS, опять наткнулся на event loop, только там он описан очень подробно и принцип его работы не совсем похож на тот с которым мы взаимодействуем на клиенте. У меня возник простой вопрос - это один и тот же event loop или нет? У браузера свой event loop написаный хз на чем, а у ноды свой, написаный на C?
Привет. Все верно. Есть движок js, реализующий ecmascript в котором нет ни слова про event loop, потому, что это ответственность хост системы, которая управляет движком. И тут уже нет единого стандарта, и каждый делает, что хочет. Поэтому в браузерах event loop один, в node другой, в deno третий и т.д. Есть какие-то базовые вещи которые стараются делать плюс минус одинаково, просто, чтобы было более предсказуемое поведение. Например нода раньше могла планировать таски и микротаски не в том же порядке, что и браузер, и это могло вызывать ошибки. Поэтому разработчики ноды решили, что исправят это и сделают порядок обработки тасков и микротасков как в web api, просто потому, что браузеры существуют раньше и разработчики привыкли к такому поведению. Но другая реализация может сделать совсем по другому и это не будет считаться ошибкой