Я работаю над проектом, который всегда отлавливает отклоненное обещание, превращает его в решенный с кодом ошибки, например
return new Promise((resolve, reject) => {
axios({
...
}).then(res => {
resolve(res);
}).catch(err => {
let res = { ... }
res.error = err
resolve(res)
})
})
Затем при каждом вызове этого API отклоненный случай обрабатывается следующим образом, то есть без перехвата
axios_call(...).then(res => {
if (!res.err) {
//resolve case
} else {
//reject case
}
})
Я никогда не обрабатывал отклоненное обещание, как это раньше, поэтому я не уверен, что это вызовет какие-либо проблемы, или это просто другой стиль кода и тоже отлично работает.
Я проверил возможные дубликаты q / a Что такое явная конструкция обещания antipattern и как мне ее избежать?
Но я верил, что они не одинаковы. Потому что мой вопрос касается обработки отклоненного обещания, в то время как этот вопрос касается отложенного объекта, например ошибки и отклонения не глотаются в моем случае.