gpt4 book ai didi

javascript - 为什么 Node.js 使用 try/catch 时会收到针对我的代码的附加错误消息?

转载 作者:行者123 更新时间:2023-12-01 00:29:30 24 4
gpt4 key购买 nike

我在异步函数内部使用了 try/catch block ,但 Node.js 收到了一些额外的错误消息。我的代码:

const work = count => {
const promise = new Promise((resolve,reject) => {
const interval = setInterval(() => {
console.log(count--);
if(!count){
try{
clearInterval(interval);
throw 'Oops...'; // emulate unexpected error...
resolve('Work done!');
}
catch(err){
reject(err);
}
}
}, 1000);
console.log('Bingo!');
});
return promise;
};

const promise = work(3);
promise.then(context => console.log(`Ressult: ${context}`));
promise.catch(err => console.log(`Error: ${err}`));

结果:

enter image description here

我做错了什么?

最佳答案

您需要如下更新代码:您没有处理被拒绝的 promise ,因为 .then 返回新的 promise ,在您的情况下这是错误的 promise 。

    const work = count => {
const promise = new Promise((resolve,reject) => {
const interval = setInterval(() => {
console.log(count--);
if(!count){
try{
clearInterval(interval);
throw 'Oops...'; // emulate unexpected error...
resolve('Work done!');
}
catch(err){
reject(err);
}
}
}, 1000);
console.log('Bingo!');
});
return promise;
};
const promise = work(3);
promise.then(context => console.log(`Ressult: ${context}`)).catch(err => console.log(`Error: ${err}`));

关于javascript - 为什么 Node.js 使用 try/catch 时会收到针对我的代码的附加错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58689817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com