
Lulz
21.08.2017
05:25:04
а то приложение падает с maximum call stack size

Zaur
21.08.2017
05:38:56

Таймураз
21.08.2017
05:43:23
А ещё в этой функции нет смысла

Google

Ilgiz
21.08.2017
05:44:11
я так для примера

Таймураз
21.08.2017
05:45:16
Не нужно на всё подряд вешать ключ async

Ilgiz
21.08.2017
05:45:43
я на всякие вешаю вдруг пригодиться
черем переписывать если нужен будет

Таймураз
21.08.2017
05:46:30
Если нужно будет переписать- перепишешь
А так- ты только замедляешь исполнение синхронного кода
Если у тебя будет много запросов- они все медленнее отработают
Ты исполнение вполне банальных вещей растягиваешь во времени
Смена контекста и тд происходит довольно быстро, но все равно проседание на нагрузках будет заметным
Да даже без нагрузки со сложной бизнес логикой разница будет заметна
Если взять абстрактный пример, в котором у тебя выполняется 100 вызовов функций синхронных, то только на промисах ты теряешь от 20мс на каждый запрос

Ilgiz
21.08.2017
05:53:08
Спасибо буду иметь ввиду

Petr
21.08.2017
06:23:51
Привет всем, во время сборки минифицируете нодовские файлы?

arts
21.08.2017
06:24:29
А смысл?

Petr
21.08.2017
06:26:52
Вообще нет его просто чтобы одной сборкой за раз все сделать

arts
21.08.2017
06:36:50
А что ты подразумеваешь под сборкой?

Google

Zaur
21.08.2017
06:37:59

Mikhail
21.08.2017
06:38:32

Petr
21.08.2017
06:41:58
Да уже спрашивали, ну типо во время сборки клиентского js, захватить серверный без склейки кшн и в папку с билдом положить

Vitaly
21.08.2017
06:42:53
А смысл?

arts
21.08.2017
06:46:38
Если не юзаешь es6 import'ы, серверный код в сборке вообще не нуждается.

Vitaly
21.08.2017
06:50:10
В пакете мог опечататься, но что-то похожее

arts
21.08.2017
06:51:32
Есть и babel/register, но в прод такое пускать не хочется.

Ilgiz
21.08.2017
08:09:56
Почему этот код будет выполняться не асинхронно?
forEach же возвращяет элемент колбеком, а колбек попадает в event loop
let a = [1, 2, 3, 4, 5];
a.forEach(elem=>{
console.log(elem)
})

Konstantin
21.08.2017
08:11:04
forEach ничего не возвращает

Ilgiz
21.08.2017
08:11:52

Konstantin
21.08.2017
08:12:17
не согласен, конечно )

Sergey
21.08.2017
08:12:49
Не всякий колбек колбекается ассинхронно

Konstantin
21.08.2017
08:12:57
forEach выполняет функцию для каждого элемента массива. Возвращает _ничего_

Ilgiz
21.08.2017
08:13:31

Sergey
21.08.2017
08:14:07
почему?
Потому что для ассинхронности нужно что то более чем вызов синхронной функции в цикле

Konstantin
21.08.2017
08:14:18

Ilgiz
21.08.2017
08:14:28

Sergey
21.08.2017
08:14:39
+

Ilgiz
21.08.2017
08:15:08
можете скинуть исходник forEach как он работает

Google

Ҫѐҏӗѫӑ
21.08.2017
08:16:57
каллбеки не обязаны выполняться асинхронно
для асинхронности нужен ввод-вывод

Konstantin
21.08.2017
08:17:33

Ilgiz
21.08.2017
08:18:58

Ҫѐҏӗѫӑ
21.08.2017
08:19:09
выше неасинхронный

Ilgiz
21.08.2017
08:19:33
я думал все функции при вызове попадают в event loop

Sergey
21.08.2017
08:21:24
функции да, но не все они выполняются асинфхронно
например если у тебя математика внутри функции, то она будет выполняться асинхронно и залочит event loop

Ҫѐҏӗѫӑ
21.08.2017
08:23:54
што

Sergey
21.08.2017
08:24:12
разве не так?

Sergey
21.08.2017
08:25:22
даже я не понял что это значит)

Sergey
21.08.2017
08:26:03
ну это значит что данная функция влюбом случае попадет в event loop, но при выполнение залочит его

Konstantin
21.08.2017
08:26:25
Парни, никакой магии в ноде нет. Не нужно пытаться усложнить, придумывая, что нода каким-то магическим образом определяет, что функция асинхронная, или что в ней есть математика, и таким образом включает или не включает её в евент-луп.

Sergey
21.08.2017
08:26:35
Звучало так будто математика задала асинхронность функции)

Sergey
21.08.2017
08:27:43
я некоректно выразился
насколько я знаю любая функция попадает в event loop, по другому она просто не выполнится
Парни, никакой магии в ноде нет. Не нужно пытаться усложнить, придумывая, что нода каким-то магическим образом определяет, что функция асинхронная, или что в ней есть математика, и таким образом включает или не включает её в евент-луп.
просто если в вашей функции есть синхронные операции, то пока они не выполнятся у вас движок будет занят выполнением этих операций

Nikolay
21.08.2017
08:32:04

Sergey
21.08.2017
08:32:52
почему?

Google

Ilgiz
21.08.2017
08:33:53
почему?
потому что он будет ждать пока очишется стэк

Nikolay
21.08.2017
08:34:16
вот здесь уже асинхронно, потому что попадает в event loop

Ilgiz
21.08.2017
08:35:21
без сэттайма можете показать мне асинхронный код

Nikolay
21.08.2017
08:35:23
даже если setTimeout 0 секунд

Egoarka
21.08.2017
08:36:55

Ilgiz
21.08.2017
08:37:27
есть стэк even loopa который берет и пушет на стэк js

Egoarka
21.08.2017
08:38:17
Че..?...

Vitaly
21.08.2017
08:38:35

Ilgiz
21.08.2017
08:39:45

Nikolay
21.08.2017
08:40:07

Vitaly
21.08.2017
08:40:11
fs.readFile

Nikolay
21.08.2017
08:40:14

Egoarka
21.08.2017
08:40:29
Ох, парни, тут просто треш в чате начинаете, лучше всем остановится, либо прочитать мат. часть

Vitaly
21.08.2017
08:41:00
https://www.youtube.com/watch?v=8aGhZQkoFbQ

Sergey
21.08.2017
08:41:08
https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/

Konstantin
21.08.2017
08:41:22
Эх, опередил =)
http://latentflip.com/loupe/

Sergey
21.08.2017
08:41:32
Event Loop Explained - там все описано кратко + удобная картинка

Google

Sergey
21.08.2017
08:42:37
там кстати и ответ, почему без сет таймаута такой порядок вывода в примере выше

Ilgiz
21.08.2017
08:43:10
тут не твоя функция асинхронная в fs.readFile

Konstantin
21.08.2017
08:43:32
https://youtu.be/8cV4ZvHXQL4?t=19m58s - вот про твой форич

Ilgiz
21.08.2017
08:44:56
вызов функции
всегда вся обсуждение упирается на то что все пихают мне setinterval settimeout

Vitaly
21.08.2017
08:47:54

Vlad
21.08.2017
08:48:29
Луп типа решает, кто будет выполнятся, а код гоняется V8-interpreter

Ilgiz
21.08.2017
08:48:59
main-stack

Egoarka
21.08.2017
08:49:55
тогда вот тебе уточнение

Ҫѐҏӗѫӑ
21.08.2017
08:50:01

Vlad
21.08.2017
08:50:05
Луп типа смотрящего в камере, а всю грязную работу делает либо Генсек параши (V8), либо зашквареные (libuv)

Egoarka
21.08.2017
08:50:05
>node js event loop queue
>https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
никакой там не стек, а очередь

Vlad
21.08.2017
08:50:37