【发布时间】:2018-07-04 10:51:53
【问题描述】:
我有一个非常简单的函数,它获取一个数字并返回一个 Promise。我不明白为什么如果承诺被拒绝,当我调用这个函数时我无法捕捉到它?而是节点抛出“发生异常”。
function check(num) {
return new Promise((resolve , reject) => {
if (num > 2) resolve('good')
else reject('bad')
})
}
check(1)
.then(res => console.log(res))
.catch(err => console.log(err))
【问题讨论】:
-
如果你只用
node运行它应该可以正常工作。您的 IDE 可能正在做一些奇怪的事情。 (此外,您通常希望使用Error实例来拒绝,以保持一切顺利,例如new Error('bad')。) -
我编辑了您的帖子但被拒绝了...如果您使用 sn-p 运行它,您会看到它在浏览器中运行良好。
-
您的代码运行良好。刚刚在 chrome 控制台和节点应用程序中尝试过。
-
sjahan,@Ryan 感谢您的帮助!问题确实出在 VS Code 中......
标签: javascript node.js error-handling promise