抛出错误但未记录错误时在 catch 上发生 UnhandledPromiseRejectionWarning

时间:2021-03-06 21:27:01

标签: node.js promise

我做了一些实验,我注意到了这个奇怪的事情

const isNumber = (number) => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            if (typeof number !== "number") {
                reject("this is not a number!");
            } else {
                resolve("this is a number!");
            }
        }, 1000);
    });
};

isNumber("wrong")
    .then(result => console.log(result))
    .catch(err => console.log(err));

这段代码可以正常工作。

但是,如果我将最后 3 行更改为

isNumber("wrong")
    .then(result => console.log(result))
    .catch(err => {throw err});

它会告诉我我的承诺的拒绝没有得到处理,即使它是?

0 个答案:

没有答案