Как правильно использовать асинхронный модуль node JS?
Привет всем! Я немного сбит с толку и был бы благодарен, если бы кто-нибудь прояснил мне несколько вещей.
Node JS является однопоточным и имеет дело в основном с асинхронным кодом, если операция занимает много времени и не является асинхронной, она блокирует приложение. Я знаком с концепцией цикла событий.
Если все это правда, то как узел JS имитирует параллелизм/параллелизм?
Что я имею в виду, возьмем для примера Асинхронный модуль, и это методы async.parallel или async.each. Оба они применяют переданную в функции функцию к каждому элементу массива параллельно(документация).
Если обратный вызов не передается в методы, они возвращают обещание, так что я должен ждать его? Все это "жонглирование" и одно обещание в конце.
Что происходит за кулисами?
Я где-то читал, что Node JS потокобезопасен и свободен от блокировок (например, в отличие от C#), но все равно не понимаю.
Спасибо, что уделили мне время.
Что я уже пробовал:
Я прочитал несколько статей на эту тему и некоторые документы, но я все еще не понимаю этого.