Size: a a a

2021 June 25

OF

Oleg Frolov in ☄️ effector
тут смысл в том, чтобы явно показать ошибку. Что, в данном конкретно случае, в запросе не должно быть test (например)
источник

yv

yumaa verdin in ☄️ effector
всё равно не понял, зачем try catch? а если убрать всякое ненужное?
источник

OF

Oleg Frolov in ☄️ effector
окей, убрал. Результат тот же - в сэндбоксе работает как и ожидается. Что с try catch, что без него
источник

yv

yumaa verdin in ☄️ effector
а у тебя?
источник

OF

Oleg Frolov in ☄️ effector
абсолютно тот же самый кусок кода из сэндбокса вставляю к себе
источник

OF

Oleg Frolov in ☄️ effector
получаю развалившийся фронт
источник

OF

Oleg Frolov in ☄️ effector
и вообще не могу сообразить, что это происходит и почему вот так?
источник

yv

yumaa verdin in ☄️ effector
а как запускаешь эффект?
источник

OF

Oleg Frolov in ☄️ effector
😮 внезапно. Я понял что у меня ломало приложение. Но теперь не понимаю, как это вообще связано. https://codesandbox.io/s/effectorhandleerrors-wejh2?file=/src/App.js вот тут в вызове initFx я добавил .then() т.к. это же асинхронка (ну по идее что тут может пойти не так). И вот пожалуйста, приложение также сломано
источник

OF

Oleg Frolov in ☄️ effector
с другой стороны. Эффект же обычный промис. Значит должен отработать как промис. Или эффект это что-то другое, поэтому я получал такой результат?
источник

yv

yumaa verdin in ☄️ effector
а если кеч поставить пустой?
источник

OF

Oleg Frolov in ☄️ effector
тогда работает
источник

yv

yumaa verdin in ☄️ effector
а у тебя? :)
источник

OF

Oleg Frolov in ☄️ effector
тоже 🙂
источник

OF

Oleg Frolov in ☄️ effector
но почему?) почему then() без catch() ломает приложение?)
источник

yv

yumaa verdin in ☄️ effector
почему так в сэндбоксе ¯\_(ツ)_/¯
источник

OF

Oleg Frolov in ☄️ effector
ааа. Догадка: что событие failData эффекта ловит событие, рисует его и прокидывает дальше (чтобы ролбары всякие смогли его отловить).. и получается действительно, что финального "отлова" не происходит, поэтому дев сборка и падает с такой ошибкой.
источник

yv

yumaa verdin in ☄️ effector
ошибка — это реакт вешает глобальный onerror хэндлер и на любой чих показывает ошибку, ты вызываешь промис, который реджектится — VM китает ошибку (которая по сути просто предупреждение) — и реакт её показывает. в прод сборке такого не будет.
источник

OF

Oleg Frolov in ☄️ effector
и тут проблема в том, что стэк трейс не корректно показывал место падения. Он показывал место последнего проброса ошибки, считая его не отловленным. Собственно, это и сбило меня с толку "почему я ловлю успешно, а реакт считает, что неудачно" ))) спасибо всем за помощь!
источник

yv

yumaa verdin in ☄️ effector
вообще тут рекомендуют дёргать события, а не эффекты, а в модели делать forward из события в эффект
источник