Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich einen asynchronen Aufruf abschließen, damit er sich synchron verhält?

Ihre vorgeschlagene Lösung (in Ihrer Bearbeitung) wird nicht funktionieren, da Sie den Thread niemals aufgeben (der Rückruf kann also niemals aufgerufen werden, sodass die Variable niemals festgelegt werden kann, sodass Ihre Schleife niemals unterbrochen wird). Node ist nicht multithreaded - es gibt immer nur einen Thread, der Javascript gleichzeitig ausführt. Es gibt keine Möglichkeit, diesen Thread zurückzugeben, außer durch die Rückkehr aus dem laufenden Code.

Sie können also nicht tun, was Sie tun möchten. Sie könnten versuchen, einige der Lösungen zu verwenden, die Ihren Synchronisierungscode hinter den Kulissen in asynchron umschreiben, aber ich persönlich habe festgestellt, dass sich dieser Ansatz nicht wirklich lohnt – es ist besser, einfach in den sauren Apfel zu beißen und es einfach zu tun alles mit Rückrufen (mit der Zeit lässt der Schmerz nach :).