Comment gérer les fonctions asynchrones lorsque vous voulez vraiment synchroniser les choses

16

Je suis assez nouveau sur NodeJS et j'ai du mal à comprendre la nature asynchrone des fonctions quand je veux vraiment qu'un appel suive l'autre de manière synchronisée.

Disons par exemple que j'appelle des méthodes de service Web. Chaque méthode a une fonction de rappel. Mais que se passe-t-il si je veux en appeler 10 dans une séquence spécifique? Dois-je vraiment chaîner / intégrer toutes les fonctions lors du premier rappel? Et si la deuxième fois la chaîne était légèrement différente?

Existe-t-il des modèles élégants pour gérer les situations dans lesquelles vous souhaitez réellement que les choses soient synchrones?

Ou dois-je vraiment abandonner ce type de programmation pour m'habituer à une autre façon de penser? Si c'est vrai, peut-être que quelqu'un peut me montrer un exemple clair d'une chaîne de fonctions plus longue utilisant des rappels ...

Thijs Koerselman
la source
10 demande dans un ordre précis. Sont-ils indépendants les uns des autres?
Jonas
1
Et notez: lié dans une chaîne ne signifie pas que ce n'est pas asynchrone, sauf si tout est lié dans cette chaîne.
Erik Reppen

Réponses:

9

Les gens utilisent généralement Step ou Async pour cela. Découvrez-les, il y a beaucoup de tutoriels sympas à leur sujet, vous verrez qu'ils viennent "à la resque:"

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

Vérifiez également ces 2 réponses:

/programming/6954588/what-is-the-best-control-flow-module-for-node-js
/programming/5265743/node-js-what-techniques -sont-là-pour-écrire-propre-simple-code-de-rappel

alessioalex
la source
Heureux d'avoir pu aider!
1
J'apprécie vraiment ces liens que vous avez fournis!
Lonnie Best