Async await?
Hey,
Ich wollte nochmal was nachfragen. Hab ich es richtig verstanden dass in einer async Funktion nur auf das awaited wird wo ein Promise zurückgegeben wird und da von es nicht awaited wird einfach nebenbei ausgeführt und nicht im Hauptprozess ?
2 Antworten
Ich nehme an, du beziehst dich auf JavaScript?
Wenn man von Web Worker absieht, ist JavaScript grundsätzlich single-threaded. Async/Await ist nur syntaktischer Zucker für Promises, d.h. wenn du diese Keywords benutzt, wird der Code innerhalb Promises erzeugt und im Event Loop hinten angestellt, bevor er verarbeitet wird. Das passiert aber immer alles im selben Thread.
wenn ich das richtig verstanden habe .
normal werden ja befehle einfach abgearbeitet syncron , das heist ein nach dem anderen , und es wird solange gewartet bis der befehl abgearbeitet ist .
wenn wir aber einen befehl haben der asyncron ist , dann wird da quasi irgendwas anlaufen und sofort als fertig makiert .
mit dem await stopt man nun solange wie bei einem normalen befehl . das heisst, es wird auch dort gewartet bis der befehl eine rückmeldung bekommt .
await sql abfrage 1
await sql abfrage 2
.
.
läuft erst weiter wenn await erfüllt ist
und ja es brauch ein promise für das ganze .
vorteil , du musst nicht verketten also nicht folgendes machen
sql abfrage 1 -> ( antwort -> sql abfrage 2 )
.
.
läuft sofort weiter