【发布时间】:2019-05-17 03:36:15
【问题描述】:
目前,我正在尝试决定在处理 Promise 中的错误时应该使用什么模式。例如,我有下面的代码
promiseFunc()
.then(result => {
console.info(`.THEN:: ${result}`)
})
.catch(error => {
console.info(`.CATCH:: ${error}`)
})
function promiseFunc() {
return new Promise((resolve, reject) => {
setTimeout(() => {
throw Error("setTimeout's callback error")
resolve('resolution')
}, 1000)
})
}
如果其中的一个函数(在我的例子中为 setTimeout())抛出一个错误,应该使用什么方法来拒绝 Promise。换句话说,我需要拒绝而不是错误,但我想到的唯一想法是添加一个 try/catch 块并从 catch 中拒绝 Promise。
【问题讨论】:
-
似乎是正确的方法。
-
与不使用 Promise 并需要捕获错误的情况没有什么不同。所以
try/catch是合适的方法 -
@charlietfl 除非您使用
async/await进行编程,否则您不需要try/catch与 promises -
@Bergi 的观点是,如果在显示的 setTimeout 内发生错误,则需要捕获它
-
@charlietfl 重点是一开始就不应该允许这种情况发生:-)
标签: javascript node.js promise