Какая принципиальная разница, сколько раз вызвано событие? Да и сама «одноразовость» ограничена лишь спецификацией, кем-то придуманной, потому что так хорошо ложилось в концепцию. Я же говорю о том, что это не единственно возможная концепция.
Для меня лично одноразовость это минус. Именно по этому на каждый «then» создается новый объект (+несколько областей видимости). Это так же порождает и недостатки, указанные в посте. EventEmitter никогда не проглотит ошибку. И ещё куча минусов есть.
Попробуйте разрулить нетривиальный поток выполнения на callbacks, желательно с обработкой ошибок, если вы не напишете свою имплементацию Promises, код, скорее всего, будет невозможно читать и понимать
Все верно, промисы — навороченные колбеки. Но, как выше писали, это не панацея, есть и другие подходы. Я о событиях.
Извините, когда я читал комментарий, то пропустил «не» перед «очень».
Я прекрасно понимаю «проблему».
Она, как обычно, в головах. За пропущенный new надо давать по рукам, а не копипастить костыли из конструктора в конструктор.
Ого, привет с кадабры.
В последнее время стало модным пихать во все конструкторы проверку this instanceof Class, толпы JS-ников привыкли и напрочь забыли оператор new. Так что и такая запись сгодится для понимания =)
Польза будет та же что и от pageshow/pagehide. Ошибки выявляются на этапе тестирования.
Тем не менее факт остается фактом: inline-скрипты выполняются при переходе вперед/назад.
Когда пользователь возвращается на закешированную страницу, скрипты не выполняются заново
Важно уточнить, что не выполняются только внешние скрипты, подключенные через script src="". Inline-скрипты выполняются всегда. Не берусь утверждать, но по-моему так будет более кроссбраузерно.
Для меня лично одноразовость это минус. Именно по этому на каждый «then» создается новый объект (+несколько областей видимости). Это так же порождает и недостатки, указанные в посте. EventEmitter никогда не проглотит ошибку. И ещё куча минусов есть.
Все верно, промисы — навороченные колбеки. Но, как выше писали, это не панацея, есть и другие подходы. Я о событиях.
Никак не буду. Мне хватает обычного конструктора. Вспоминается поговорка про самовар.
Мой поинт в том, что эта фабрика вообще не нужна =)
Тем более, что в таком виде она сильно неэффективна, можно и нужно ее оптимизировать в производительности, а это уже не одна строчка.
Я прекрасно понимаю «проблему».
Она, как обычно, в головах. За пропущенный new надо давать по рукам, а не копипастить костыли из конструктора в конструктор.
Вообще, проблема топика надуманная.
Если используешь конструктор, напиши new и точка. Если фабрика — не пиши. Проблем нет.
Забыл/лень — ССЗБ.
Сами подсели, а теперь ноют.
Никто никого не заставлял им пользоваться. Выход всегда есть.
В последнее время стало модным пихать во все конструкторы проверку this instanceof Class, толпы JS-ников привыкли и напрочь забыли оператор new. Так что и такая запись сгодится для понимания =)
Тем не менее факт остается фактом: inline-скрипты выполняются при переходе вперед/назад.
Важно уточнить, что не выполняются только внешние скрипты, подключенные через script src="". Inline-скрипты выполняются всегда. Не берусь утверждать, но по-моему так будет более кроссбраузерно.