我曾经在Javascript中处理过许诺,我正在尝试在async-await中实现我的功能。如何触发将在async-await中的。catch()中捕获的reject()
在promises中,我们有一种手动触发reject()的方法:
const doSomething = (someNumber)=>{
return new Promise((resolve,reject)=>{
if (someNumber > 5) {
resolve('this resolves when someNumber is greater than 5')
}else{
reject('this gives a reject when someNumber is not greater than 5')
}
})
}
doSomething(7)
.then((infoMessage)=>{
//this will show
console.log(infoMessage)
})
.catch((err)=>{
//this wont show
console.log(errMessage)
})
doSomething(3)
.then((infoMessage)=>{
//this wont show
console.log(infoMessage)
})
.catch((err)=>{
//this will show
console.log(errMessage)
})
只需抛出错误:
async function rejectMe() {
throw new Error("rejected!");
}
async function main() {
await rejectMe();
}
main()
.then(() => {
console.log("finished!")
})
.catch((e) => {
console.error(e);
})
这样做吧:
const doSomething = (someNumber)=>{
if (someNumber > 5) {
return Promise.resolve('this resolves when someNumber is greater than 5')
}
else
{
return Promise.reject('this gives a reject when someNumber is not greater than 5')
}
})