Size: a a a

Флудилка нодскула

2017 February 22

E

Etki in Флудилка нодскула
ну у меня дилемма между "обеспечить единство интерфейса" и "сообщить клиенту, что его операция невозможна, вместо возврата структуры провалившегося выполнения"
источник

E

Etki in Флудилка нодскула
Кстати, возвращаясь к Promise: как правильно оформляется Promise, который будет выполнен/отклонен где-то дальше в коде на основе логики, а не события? Т.е. мне нужно создать Promise и потом как-то выполнить или отклонить его, причем на момент создания я еще не знаю, что произойдет, и не могу пользоваться .resolve / .reject. Конструкция
var complete,
   cancel,
   promise = new Promise((a, b) => { complete = a; cancel = b });

в общем случае работает, но с такой конструкцией у меня нет гарантий, что на момент вызова complete или cancel они будут существовать
источник

TM

Tim Marinin in Флудилка нодскула
Можешь конкретнее вопрос сформулировать?)
источник

E

Etki in Флудилка нодскула
Мне нужно получить некоторый объект-обещание, который я смогу выполнить или отклонить снаружи, а не из функции-конструктора
источник

E

Etki in Флудилка нодскула
Например, тот же таск, в очереди: у него есть представляющий выполнение promise, который, однако, может быть завершен не только в результате выполнения функции, но и если очередь остановят до того, как дело дошло до выполнения таска. В этом случае я должен завершить его promise с исключением, и для этого мне нужен этот самый внешний доступ.
источник

E

Etki in Флудилка нодскула
если совсем грубо, то мне нужны аналоги Promise.reject и .resolve, но не у класса, а у объекта
источник

TM

Tim Marinin in Флудилка нодскула
deferred ты хочешь
источник

TM

Tim Marinin in Флудилка нодскула
но они не попали в Promise/A+ как раз потому, что антипаттерн
источник

E

Etki in Флудилка нодскула
скажем так, у меня свое отношение к этой спецификации
источник

YL

Yan👀 Lobaty in Флудилка нодскула
так а просто then и catch?
источник

YL

Yan👀 Lobaty in Флудилка нодскула
не подойдут
источник

YL

Yan👀 Lobaty in Флудилка нодскула
Может я не совсем понял но чем так плохо?
let objPromise = Promise.resolve(42);
objPromise.then(() => { if (condition) { return 'to che nado'; } else { throw new Error('oshibka kakaya nado'); } });
источник

E

Etki in Флудилка нодскула
время, когда посчитается condition, неизвестно
источник

YL

Yan👀 Lobaty in Флудилка нодскула
ну так расчет condition в какой-то функции идет верно?
источник

YL

Yan👀 Lobaty in Флудилка нодскула
или как?)
источник

E

Etki in Флудилка нодскула
тот же пример с очередью - есть таски, которые могут быть либо выполнены, если до них дошла очередь, либо отменены, если поступил внешний сигнал на отмену всего мероприятия
источник

E

Etki in Флудилка нодскула
можно действительно добавить в них проверку "а не терминирована ли очередь" перед выполнением, но меня немного пугает такой подход
источник

YL

Yan👀 Lobaty in Флудилка нодскула
источник

YL

Yan👀 Lobaty in Флудилка нодскула
мб это поможет)
источник

YL

Yan👀 Lobaty in Флудилка нодскула
tc-39 отклонил отменяемые промисы но петька делает как хочет)
источник