Mar*_*ary 1 javascript promise
我的代码如下:
errorTest().then((result) => {
try {
console.log(result);
}
catch (err) {
console.error("Error detected 1");
console.error(err);
}
}).catch((err) => {
console.error("Error detected 2");
console.error(err);
});
async function errorTest() {
return new Promise((resolve, reject) => {
reject("my error");
})
}
Run Code Online (Sandbox Code Playgroud)
目前,它打印"检测到错误2".
我想使用try/catch捕获我的错误,以便代码打印"Error detected 1".
如何修改我的代码才能执行此操作?
首先声明async函数,这意味着你声明一个返回Promise的函数.所以你不需要用新的Promise扭曲它
你可以这样做
async function errorTest() {
throw new Error("my error")
}Run Code Online (Sandbox Code Playgroud)
然后你可以像这样尝试捕获它
(async () =>{
try{
await errorTest()
}
catch(err){
console.log(err)
}
})()Run Code Online (Sandbox Code Playgroud)
然后完整的代码将如下所示
async function errorTest() {
throw new Error("my error")
}
(async () =>{
try{
await errorTest()
}
catch(err){
console.log(err)
}
})()Run Code Online (Sandbox Code Playgroud)