Heim >Web-Frontend >js-Tutorial >Wie führe ich asynchronen Code auf der obersten Ebene in JavaScript ordnungsgemäß aus?
Bei der asynchronen Programmierung können Sie mit der Async/Await-Funktion nahtlos zwischen synchronen und asynchronen Aufgaben wechseln. Bei der Ausführung von asynchronem Code auf der obersten Ebene müssen jedoch bestimmte Überlegungen angestellt werden.
Wenn Sie eine asynchrone Funktion definieren, gibt sie ein Promise zurück. Wenn Sie diese Funktion auf der obersten Ebene aufrufen, gibt sie sofort das Versprechen zurück, nicht den aufgelösten Wert. Aus diesem Grund gibt Ihre Konsole das Promise-Objekt aus, bevor sie die asynchrone Aufgabe ausführt.
Um dieses Problem zu lösen, haben Sie mehrere Möglichkeiten:
1. Top-Level-Await (ES2022-Vorschlag)
In modernen Umgebungen können Sie Top-Level-Await in Modulen verwenden. Dadurch können Sie direkt im Modulumfang auf ein Promise warten.
const text = await main(); console.log(text); // Logs the resolved value
2. Asynchrone Funktion der obersten Ebene mit unbehandelter Ablehnung
Sie können eine asynchrone Funktion der obersten Ebene definieren, die niemals ablehnt. Dies verhindert unbehandelte Ablehnungsfehler, behandelt Fehler jedoch nicht explizit.
(async () => { try { const text = await main(); console.log(text); // Logs the resolved value } catch (e) { // Error handling (optional) } })();
3. then() und Catch()
Wenn keine der oben genannten Optionen geeignet ist, können Sie die Methoden then() und Catch() des Promise verwenden, um das Ergebnis zu verarbeiten.
main() .then((text) => { console.log(text); // Logs the resolved value }) .catch((err) => { // Error handling });
Hinweis: In allen Fällen ist es wichtig, mit Ablehnungen ordnungsgemäß umzugehen, um unbehandelte Ablehnungsfehler zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie führe ich asynchronen Code auf der obersten Ebene in JavaScript ordnungsgemäß aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!