'NodeJs - One async function forced me to make all my functions async [duplicate]

I'm working on a web application using expressjs and knexjs packages. because knex functions are async or promise-based, I have to make all my functions async too. for example if I have 3 functions:

async function accessDb() {
   return await knex.some_query();
}

async function doSomething() {
  let db_result = await accessDb();
  // do something with db_result;
  return some_result;
}

async function doMore() {
    let something_result = await doSomething();
    //....
    return true;
}

How can I stop making all my functions async because of one async function?



Solution 1:[1]

It names is Promise hell/ async&await hell,

You can use Promise.all function, like:

Promise.all([
   doSomething(),
   doMore()
]).then(() => doMoreThanMore())

another solution is:

function doMore() {
    doSomething()
       .then((something_result) => {
           doMoreMore()
       })
    //....
    return true;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Yusuf ?lker O?uz