sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag avsluta ett asynkront samtal så att det beter sig synkront?

Din föreslagna lösning (i din redigering) kommer inte att fungera eftersom du aldrig ger upp tråden (så återuppringningen kan aldrig anropas, så variabeln kan aldrig ställas in, så din loop går aldrig av). Noden är inte flertrådad - det finns bara en tråd som kör javascript åt gången. Det finns inget sätt att ge den tråden utom genom att återvända från vilken kod som helst som körs.

Så du kan inte göra vad du vill göra. Du kan försöka använda några av lösningarna som omskriver din synkroniseringskod till asynkron bakom kulisserna, men jag har personligen funnit att tillvägagångssättet inte riktigt är värt ansträngningen - det är bättre att bara bita ihop och bara göra allt med callbacks (med tiden avtar smärtan :).



  1. Lägga till en unik identifieringskolumn och lägga till standard för att generera ny guide

  2. Entity Framework Core 2.0:Hur man konfigurerar abstrakt basklass en gång

  3. Köra 2 frågor samtidigt på Oracle SQL Developer?

  4. Konvertera JSON-array i MySQL till rader