Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 . How do I trigger a reject() which will be caught in .catch() in async-await

In promises we have a way to manually trigger a 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)
})
like image 825
Daggie Blanqx - Douglas Mwangi Avatar asked Oct 20 '25 06:10

Daggie Blanqx - Douglas Mwangi


1 Answers

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);
})
like image 175
jknotek Avatar answered Oct 22 '25 21:10

jknotek