你好,我偶然发现了一个问题,我不确定我是否只是误解了承诺的工作方式。我试图捕获unhandledPromiseRejection通过包装所有的代码在一个父承诺的方法内,以便它可以捕获传播的错误。
function testFunction() {
new Promise((resolve,reject)=>{
const innerPromiseWithError = new Promise(resolve=>{
throw new Error("TESTTEST");
})
innerPromiseWithError.then();
//do smth else here;
}).catch(console.log);
在这里,我希望catch捕获被拒绝的承诺与由innerPromise引起的错误,但事实并非如此。我的逻辑是否有缺陷,我期望如何处理这件事?
这是promise的例子
function promise() {
return new Promise(function (resolve, reject) {
const a = 4
const b = 5
const c = 5
const sum = a + b;
if (sum <= c) {
resolve("Let's go!!" + " " + sum)
} else {
reject(`Oops!.. Number must be less than : ${c}`)
}
})
};
promise().then((ele) => {
console.log("true", ele)
}).catch((err) => {
console.log(err)
})