Size: a a a

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

2020 February 22

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Alex Konstantinov
Я посмотрел, все ок, только напрягло, что пришлось подключать внешнюю либу для решения задачи, которая ,казалось бы, тривиальна. Я пытаюсь найти информацию о том, почему это антипаттерн, использовать new Promise, если это кажется наиболее простым решением, не могли бы подсказать, где искать?
Ну строго говоря задача нетривиальная, ее поколениями решали криво.
источник

AK

Alex Konstantinov in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Ну строго говоря задача нетривиальная, ее поколениями решали криво.
Все-таки, хотелось бы получить аргументы, почему это криво.
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
А поток который собирается все в один буфер можно просто скопировать оттуда
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Alex Konstantinov
Все-таки, хотелось бы получить аргументы, почему это криво.
Ну у тебя я рабочей версии вообще не увидел) Это фундаментальный аргумент. Но представим что его нет. Я ща найду спокойно другие
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Не из практической деятельности, а теоретического осмысления
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
1) Ты получаешь на уровень больше вложенность, а то и на два.
2) У тебя ничего не гарантирует, что ты в любом случае отрезолвишь промис
3) У тебя ничего не гарантирует закрытие входящего потока --- при ошибке он так и останется подвешенным висеть в небесах и отнимать память, пока сторонний сервер не разорвет соединение
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Метафора ещё и про то, что доступа к нему у тебя уже нет, но он живой и может вполне исполняться в замыкании забытого промиса
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
4) Предположим что ты разберёшься какие ошибки какие конструкции ловят и этот пункт перестанет играть роли
источник

AK

Alex Konstantinov in Node.js — русскоговорящее сообщество
Я правильно понимаю, что аргументация сводится к тому, что разработчики не должны использовать new Promise, потому что они тупые, не умеют кодить, не понимают, как что работает?
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Это экстремизм какой-то
Примерно такие же аргументы можно привести для запрета циклов for и while - если разработчик ступит, то они будут бесконечны
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
5) Ну и ещё --- используя промис в виде явного конструктора очень сложно нормально вытащить дополнительную логику для контроля за запросом после его начала. Промис создавался для чего-то, контроль над чем сразу после его старта теряется
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Alex Konstantinov
Я правильно понимаю, что аргументация сводится к тому, что разработчики не должны использовать new Promise, потому что они тупые, не умеют кодить, не понимают, как что работает?
Не так.
источник

AK

Alex Konstantinov in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Не так.
Выглядит так.
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
1) Есть альтернатива
2) Альтернатива появилась в результате рефлексии над существующими проблемами
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
То есть формально всё ок, но тащить пару библиотек чтобы не писать new promise это странно
Гарантий, что авторы библиотеки не накосячили, тоже не очень много
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Которые в той или иной степени всплывали у всех, кто-то просто больше сил вкладывать вынужден, а кто-то чаще косячит
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Формирование удобного слоя абстракции штука тонкая
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Алексей Попов
То есть формально всё ок, но тащить пару библиотек чтобы не писать new promise это странно
Гарантий, что авторы библиотеки не накосячили, тоже не очень много
Я ни одну не втащил для этого
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Это ядро ноды все
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Это ядро ноды все
Concat-stream тоже? Не увидел в доке
источник