Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 September 21

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Event loop это не что-то, что было придумано в NodeJS. Описание того, как он работает есть в web API. NodeJS имплементирует (при помощи libuv) то, что написано в стандарте.
Поэтому этого не написано в документации. А та диаграмма, которую Вы скинули, была в статье в разделе guides, которая вышла довольно давно, как Вам уже написали. Промисов тогда не было.

Вы же не ожидаете, что в документации NodeJS будет написано что такое Promise или async/await?
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Посыл авторов документации: скачи между источниками (ссылок мы не дадим, как и какой-то общей картины), догадайся, что event loop - это часть libuv, а очереди макро/микротасков - часть V8, мы же оставим лишь обрубок информации, которая ни к селу ни к городу, приятного сбора пазла!
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
Так кажеш, наче це щось погане
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Потому и изучаешь работу инструмента по ноунейм статейкам, либо же вообще эмпирически.
источник

S

Serhii in NodeUA - JavaScript and Node.js in Ukraine
Других node.js у меня для вас нет.
источник

АГ

Андрей Гончаренко... in NodeUA - JavaScript and Node.js in Ukraine
Было бы неплохо, если б было )
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
А зачем Вам, как человеку, который пишет веб сервис, знать, что event loop это часть libuv и какая очередь какой частью NodeJS имплементирована?
Что это поменяет? Это же платформа, Вам не нужно всего этого знать чтобы ей пользоваться.
Вам же не нужно знать как работает двигатель внутреннего сгорания в деталях чтобы пользоваться автомобилем.

Если нужно копнуть глубже, смотрите исходники.
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
То, что вы перечисли - довольно поверхностные знания об инструменте, имеющие большое значение при написании прикладного кода. Как вообще можно с асинхронностью работать, не зная этого?
источник

DH

Dima Haponov in NodeUA - JavaScript and Node.js in Ukraine
Да а то придётся до уровня ядерной физики опустится чтоб понять принципы работы вселенной - а потом уже и node.js вернутся к  v8 и libuv думаю вам так и стоит поступить
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Как работать с асинхронностью не зная, что event loop это часть libuv?
Я думаю, точно так же как и зная это.
Вообще ни на что не влияет
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Нет, как устроен event loop, а чтобы это понять, нужно собирать пазл, т.к. никто не удосужился компактно уложить эту инфу в документацию. А чтобы собрать пазл, нужно, знать особенности составных частей ноды, в т.ч. и libuv.
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Вот именно. То, как работает event loop написано в стандарте, который не специфичен для NodeJS.
Вам о существовании libuv вообще знать не нужно, если Вы пишете прикладной код.

Можно очень легко попасть в ситуацию, когда кажется, что нужно разобраться в каждой детале. Вместо того, чтобы писать код вы начинаете разбираться в том, как работает libuv, хотя эти детали были намеренно скрыты за абстракцией, чтобы вы об этом не задумывались и просто писали код.
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Кстати, насчёт примера с ДВС: примеры с машинками/фигурками/зверушками в программной инженерии не работают.
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Если Вы так считаете, то вот Вам другой пример.
Вы же не лезете разбираться как работает ядро вашей ОС, хотя пользуетесь ей. И Вам это не нужно чтобы эффективно использовать ОС.
И тем более Вы не спрашиваете "где документация на ядро ОС".
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
В том-то и дело, что ПОЛЬЗУЮСЬ, а не разрабатываю какую-то систему на основе ядра ОС. Смотреть ютубчик и проектировать программную систему - не одно и то же)
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Тоже плохой пример, да и я сомневаюсь, что какие-либо примеры из реальной жизни вообще будут к месту.
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Но ведь ОС это платформа, как и NodeJS. Вы разрабатываете для нее приложения (как и прикладной код на NodeJS). ОС запускает Ваш прикладной код (как и NodeJS).
В чем Вы не согласны?
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
ОС состоит из многих частей, в том числе и из ядра. Но Вы же не смотрите как работает все в деталях, чтобы написать приложение, которое будет запущено ОС?

Конечно, можно писать драйверы.
Но и в NodeJS можно писать аддоны. Вот как раз для этого знания того, что event loop это часть libuv Вам могут понадобиться.
Для прикладного кода это не нужно. Все знать невозможно. Для этого и сделаны абстракции (в виде NodeJS как платформы, например).
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Можно самому написать такую статью и сделать pr с ней в репу сайта ноды
Это будет конструктивно
источник

r

randomtron in NodeUA - JavaScript and Node.js in Ukraine
Этим и собирался заняться.
источник