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?
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;
}