Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso concludere una chiamata asincrona in modo che si comporti in modo sincrono?

La tua soluzione proposta (nella tua modifica) non funzionerà perché non abbandoni mai il thread (quindi il callback non può mai essere chiamato, quindi la variabile non può mai essere impostata, quindi il tuo ciclo non si interrompe mai). Il nodo non è multi-thread - c'è sempre un solo thread che esegue javascript alla volta. Non c'è modo di restituire quel thread se non restituendo da qualsiasi codice sia in esecuzione.

Quindi, non puoi fare quello che vuoi fare. Potresti provare a utilizzare alcune delle soluzioni che riscrivono il tuo codice di sincronizzazione in modo asincrono dietro le quinte, ma personalmente ho scoperto che l'approccio non vale davvero la pena:è meglio mordere il proiettile e farlo e basta tutto con i callback (con il tempo il dolore si attenua :).