Estoy trabajando en una aplicación web usando los paquetes expressjs y knexjs. Debido a que las funciones de Knex son asíncronas o basadas en promesas, también tengo que hacer que todas mis funciones sean asíncronas. por ejemplo si tengo 3 funciones:
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; }¿Cómo puedo dejar de hacer que todas mis funciones sean asíncronas debido a una función asíncrona?
Su nombre es Promise hell/async&await hell,
Puede usar la función Promise.all , como:
Promise.all([ doSomething(), doMore() ]).then(() => doMoreThanMore())otra solución es:
function doMore() { doSomething() .then((something_result) => { doMoreMore() }) //.... return true; }