¿Es posible hacer llamadas de cuna sincrónicamente?
Pregunta
Estoy usando Express para un proyecto, y he estado probando la base de datos CouchDB usando Cradle. Si bien la idea de la ejecución asincrónica es genial por razones de rendimiento, está haciendo que mi código realmente sea un desastre para las rutinas en las que necesito hacer varias llamadas de base de datos seguidas.
¿Es posible hacer llamadas de cuna sin usar una devolución de llamada? O, supongo que más correctamente, ¿hay una mejor manera de organizar el código que no implica anidar 3 o 4 funciones anónimas entre sí solo para obtener los resultados de la consulta de la base de datos? El código solo se usa en un solo lugar, por lo que no tiene sentido para mí usar funciones con nombre que solo se llamen una vez.
Solución
¿Es posible hacer llamadas de cuna sin usar una devolución de llamada?
Hasta donde yo sé, Cradle solo tiene una API asincrónica.
O, supongo que más correctamente, ¿hay una mejor manera de organizar el código que no implica anidar 3 o 4 funciones anónimas entre sí solo para obtener los resultados de la consulta de la base de datos?
Primero recomendaría leer los siguientes artículos sobre el tema de control de flujo para obtener una imagen más grande de lo que está sucediendo:
- Comprensión de la programación basada en eventos
- Diseño de código asincrónico con node.js
- Comprender los bucles de eventos y escribir un gran código para node.js
- Node.js: E/S asíncrono para diversión y ganancias
- Flujo de control en el nodo
- Flujo de control en el nodo Parte II
- Flujo de control en el nodo Parte III
- Código asincrónico en Node.js
Luego puede simplificar las cosas y aprovechar varias bibliotecas de control de flujo que se ocupan de los problemas de código asíncrono en Node.js: