Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je conclure un appel asynchrone pour qu'il se comporte de manière synchrone ?

Votre solution proposée (dans votre édition) ne fonctionnera pas car vous n'abandonnez jamais le thread (donc le rappel ne peut jamais être appelé, donc la variable ne peut jamais être définie, donc votre boucle ne se casse jamais). Le nœud n'est pas multi-thread - il n'y a qu'un seul thread exécutant javascript à la fois. Il n'y a aucun moyen de céder ce thread sauf en revenant du code en cours d'exécution.

Donc, vous ne pouvez pas faire ce que vous voulez faire. Vous pouvez essayer d'utiliser certaines des solutions qui réécrivent votre code de synchronisation en asynchrone dans les coulisses, mais j'ai personnellement trouvé que cette approche ne vaut pas vraiment l'effort - c'est mieux de mordre la balle et de faire tout avec des rappels (avec le temps la douleur s'atténue :).