Cómo lidiar con funciones asincrónicas cuando realmente solo quieres cosas sincronizadas

16

Soy bastante nuevo en NodeJS y me resulta difícil entender la naturaleza asincrónica de las funciones cuando realmente quiero que una llamada siga a la otra de forma sincronizada.

Digamos, por ejemplo, que estoy llamando a métodos de servicio web. Cada método tiene una función de devolución de llamada. Pero, ¿qué pasa si quiero llamar a 10 de ellos en una secuencia específica? ¿Realmente necesito encadenar / incrustar todas las funciones en la primera devolución de llamada? ¿Qué pasa si la segunda vez la cadena es ligeramente diferente?

¿Hay patrones elegantes para lidiar con situaciones en las que realmente quieres que las cosas estén sincronizadas?

¿O debería dejar de lado este tipo de programación para acostumbrarme a una forma diferente de pensar? Si eso es cierto, tal vez alguien pueda señalarme un ejemplo limpio de una cadena de funciones más larga utilizando devoluciones de llamada ...

Thijs Koerselman
fuente
10 solicitud en una secuencia específica. ¿Son independientes unos de otros?
Jonas
1
Y nota: vinculado en una cadena no significa que no sea asíncrono a menos que todo esté vinculado en esa cadena.
Erik Reppen

Respuestas:

9

La gente generalmente usa Step o Async para eso. Échales un vistazo, hay un montón de buenos tutoriales sobre ellos, verás que vienen "al resque:"

http://dailyjs.com/2011/11/14/popular-control-flow/
http://dailyjs.com/2011/11/07/code-review/
http://howtonode.org/step-of- conductor

También verifique estas 2 respuestas:

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-techniques -are-there-for-writing-clean-simple-callback-code

alessioalex
fuente
Me alegro de poder ayudar!
1
¡Seguro que aprecio estos enlaces que has proporcionado!
Lonnie Best