为什么"赶上"不处理被拒绝的承诺?

时间:2018-01-25 08:34:20

标签: javascript node.js error-handling promise

我有一个非常简单的函数,它获取一个数字并返回一个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))

screenshot

1 个答案:

答案 0 :(得分:4)

此代码应该没有任何问题。问题出在IDE /调试器中。

如果您正在使用Microsoft Visual Studio Code之类的东西并使用断点运行,那么您应该能够设置IDE应该抛出的异常类型。

通常,您可以在调试面板中找到几个选项,说明何时发出异常信号,例如AllUncaughtPromise rejects等。请尝试检查您的调试面板编辑器。

enter image description here