Size: a a a

2021 March 15

S

Sergey in ☄️ effector
тогда проще было бы изменить условие на !== и кидать тут throwError  
https://github.com/effector/effector/blob/82c2e174aec34ebb6ae1caffe0fc313e671ec7d7/src/react/useStore.ts#L14
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
согласен, но мне кажется наша задача и поспорить о вариантах, а не бездумно решение в лоб дать :)
(желательно с пояснением плюсом и минусов каждого)
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
(желательно с пояснением плюсом и минусов каждого)
Ну смотри, мой аргумент, что в решении данной задачи не надо за пределы промисов выходить (а combineEvent это выход все же)ё
источник

AO

Aleksandr Osipov in ☄️ effector
промис более низкого уровня абстракция и если можно обойтись ей то лучше там и остаться
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
Ну смотри, мой аргумент, что в решении данной задачи не надо за пределы промисов выходить (а combineEvent это выход все же)ё
Ну в условии задачи не было, что нам необходимо запускать все эффекты вместе, а лишь что нужно отреагировать когда все перейдут в файнали
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
Ну в условии задачи не было, что нам необходимо запускать все эффекты вместе, а лишь что нужно отреагировать когда все перейдут в файнали
ну да..
источник

c⁣

createStore<🦉>... in ☄️ effector
Sergey
тогда проще было бы изменить условие на !== и кидать тут throwError  
https://github.com/effector/effector/blob/82c2e174aec34ebb6ae1caffe0fc313e671ec7d7/src/react/useStore.ts#L14
это рантайм ошибка
чего эффектор пытается избегать

он просто полагает, что если ты начал пихать разные сторы в рантайме, ты знаешь что делаешь.

это также показано в документации (отсутствие описания такого кейса).
но это не значит, что это правильный код или так стоит делать всегда
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
ну да..
Поэтому я предложил более точное выражения намерения (хотя и предполагаю что именно тот кейс и через олСетлед решается)
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
Ну в условии задачи не было, что нам необходимо запускать все эффекты вместе, а лишь что нужно отреагировать когда все перейдут в файнали
но решение с Promise.allSettled более очевидное с точки зрения человека незнакомого с эффектором и патронимумом
источник

AO

Aleksandr Osipov in ☄️ effector
Оно не выводит задачу за рамки промисов по сути
источник

AO

Aleksandr Osipov in ☄️ effector
Ну это мой аргумент вот, что кажется проще так
источник

DS

Dmitriy Shuleshov in ☄️ effector
Sergey
тогда проще было бы изменить условие на !== и кидать тут throwError  
https://github.com/effector/effector/blob/82c2e174aec34ebb6ae1caffe0fc313e671ec7d7/src/react/useStore.ts#L14
Это не сурсы реакта🌚
источник

S

Sergey in ☄️ effector
ок
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
Поэтому я предложил более точное выражения намерения (хотя и предполагаю что именно тот кейс и через олСетлед решается)
Ну вот если я тебя понял верно, то намеряние в моем варианте с allSetled более явное и широко выражено (то есть понятно не знакомым с эффектором)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Sergey
ок
Ну те посыл Сергей четко выразил выше.
Если этого лучше избегать, это все же не значит что такой кейс должен ломать все. Это вполне валидное использование useStore, хотя и не рекомендуемое (скорее всего)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
Ну вот если я тебя понял верно, то намеряние в моем варианте с allSetled более явное и широко выражено (то есть понятно не знакомым с эффектором)
"а можно ли как-то подписаться на то, что как только несколько эффектов перешли в статус finally,"

Напомню условие
источник

AO

Aleksandr Osipov in ☄️ effector
Dmitriy Shuleshov
"а можно ли как-то подписаться на то, что как только несколько эффектов перешли в статус finally,"

Напомню условие
ну мб у меня проф деформация ;)
источник

DS

Dmitriy Shuleshov in ☄️ effector
Aleksandr Osipov
ну мб у меня проф деформация ;)
Давай спросим)
источник

AO

Aleksandr Osipov in ☄️ effector
я это читаю как allSettled
источник

AO

Aleksandr Osipov in ☄️ effector
Метод Promise.allSettled() возвращает промис, который исполняется когда все полученные промисы завершены (исполнены или отклонены), содержащий массив результатов исполнения полученных промисов.
источник