Size: a a a

Node.js — русскоговорящее сообщество

2021 February 12

N

Nikita in Node.js — русскоговорящее сообщество
Artem Soroka
очередь
это я понял, имею ввиду что за реализация)
источник

AC

Aleksey Chipiga in Node.js — русскоговорящее сообщество
Mikhail Smolnikov
Снова я.
Пытаюсь разобраться с ассинхронностью.
Нужно: создать пул задач, после прохождения которого запустить одну функцию.
Звучит просто, а на деле я что-то не догоняю.
В гисте вроде всё в комментах расписал, надеюсь понятно будет
Спасибо
Из-за того что queue.add не дожидаешься сразу return callback идёт. История как если .map передать асинхронную функцию
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Aleksey Chipiga
Из-за того что queue.add не дожидаешься сразу return callback идёт. История как если .map передать асинхронную функцию
обернуть queue.add в async?
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
ну, т.е. смесь эвэйтов с then-ами норм
источник

AC

Aleksey Chipiga in Node.js — русскоговорящее сообщество
Mikhail Smolnikov
обернуть queue.add в async?
Глянуть что он вообще возвращает. Если и так промис вернулся то тогда просто await. Если нет то да, что-то похожее на это
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
В либе еще есть функция queue.on('idle', foo()), которая выполняется, когда пул будет пустым
источник

D

Draft in Node.js — русскоговорящее сообщество
Шалом! Пытаюсь профайлить проект, и профайлер выдает такую инфу
Что это значит? Типа процесс ноды занимает ~80% процессорного времени. Почему? Зачем?
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Alexey Ermakov
ну, т.е. смесь эвэйтов с then-ами норм
const bar = await foo()
foo().then(bar => ?)
Одно и тоже?
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Или ты про что-то другое?)
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
Mikhail Smolnikov
const bar = await foo()
foo().then(bar => ?)
Одно и тоже?
типа того
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Aleksey Chipiga
Глянуть что он вообще возвращает. Если и так промис вернулся то тогда просто await. Если нет то да, что-то похожее на это
queue.add возвращает promise
но если добавить перед этим await, задачи идут одна за другой
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Видимо цикл не идёт дальше, пока promise от add не вернет что-то
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Хотя, это же бред. По-сути async функция не должна блокировать основной поток
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
так тебе промисы  очередь складывать надо?
источник

I

Igor in Node.js — русскоговорящее сообщество
Mikhail Smolnikov
Хотя, это же бред. По-сути async функция не должна блокировать основной поток
но ведь нода однопоточная
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Alexey Ermakov
так тебе промисы  очередь складывать надо?
либа за меня это и делает
создаётся пул как будто array с промисами внутри
а потом вызывается Promise.All()
Только там ещё чуток магии с количеством потоков, стейтами, но в целом всё
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Igor
но ведь нода однопоточная
первоначально - да, но с 11.5, если не вру, завезли мультипоток
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
Mikhail Smolnikov
либа за меня это и делает
создаётся пул как будто array с промисами внутри
а потом вызывается Promise.All()
Только там ещё чуток магии с количеством потоков, стейтами, но в целом всё
в смысле либа это делает
там же очередь
что запихнешь туда, то и будет
источник

MS

Mikhail Smolnikov in Node.js — русскоговорящее сообщество
Alexey Ermakov
в смысле либа это делает
там же очередь
что запихнешь туда, то и будет
ну либа запихивает)
queue.add(Promise)
источник

Y

Yuriy in Node.js — русскоговорящее сообщество
Ребят, нужна библиотека для сжатия фоток при загрузке на сервер. Может кто-то подсказать?
источник