Forwarded from Cat in Web
Что не так с "Голыми промисами" и чем их заменить
Статья (англ.): https://www.freecodecamp.org/news/naked-promises-are-not-safe-for-work/
Эта тема довольно часто поднимается в статьях: промисы в чистом виде не очень удобны.
Во-первых, их нельзя отменить (вообще можно, но это требует некоторого объема дополнительного кода).
Во-вторых, вызов промиса создает сразу несколько состояний, которые обычно нужно отслеживать (состояние загрузки, возможная ошибка выполнения).
Кроме того в некоторых случаях при выполнении промиса требуется проверить, актуален ли контекст его выполнения (например, не размонтирован ли к этому времени компонент React).
В качестве решения проблемы автор предлагает просто обернуть промис, инкапсулировав всю дополнительную логику, и предлагает сразу несколько готовых пакетов (react-async, react-use, react-hooks-async).
#react #promise #patterns
Статья (англ.): https://www.freecodecamp.org/news/naked-promises-are-not-safe-for-work/
Эта тема довольно часто поднимается в статьях: промисы в чистом виде не очень удобны.
Во-первых, их нельзя отменить (вообще можно, но это требует некоторого объема дополнительного кода).
Во-вторых, вызов промиса создает сразу несколько состояний, которые обычно нужно отслеживать (состояние загрузки, возможная ошибка выполнения).
Кроме того в некоторых случаях при выполнении промиса требуется проверить, актуален ли контекст его выполнения (например, не размонтирован ли к этому времени компонент React).
В качестве решения проблемы автор предлагает просто обернуть промис, инкапсулировав всю дополнительную логику, и предлагает сразу несколько готовых пакетов (react-async, react-use, react-hooks-async).
#react #promise #patterns
freeCodeCamp.org
Why Naked Promises Are Not Safe For Work - and What to Do Instead
This article goes through my personal journey of discovery and struggle adopting the conventional wisdom as it pertains to asynchronous work on the frontend. With any luck, you will come away with at least a deeper appreciation of 3 tricky cases to handle…
👍1