[英]How to manually trigger a reject in async-await
I have worked with Promises in Javascript and I am trying to implement my functions in async-await .我曾在 Javascript 中使用过 Promises,我正在尝试在 async-await 中实现我的功能。 How do I trigger a reject() which will be caught in .catch() in async-await
如何触发将在 async-await 中的 .catch() 中捕获的 reject()
In promises we have a way to manually trigger a 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)
})
Just throw the error:只是抛出错误:
async function rejectMe() {
throw new Error("rejected!");
}
async function main() {
await rejectMe();
}
main()
.then(() => {
console.log("finished!")
})
.catch((e) => {
console.error(e);
})
Promise.reject()
在承诺链中的任何地方都应该这样做。
Have it this way:这样做:
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')
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.