async und await in Javascript

  • Hallo, ich will eine HTML-Datei laden und dann via Javascript anzeigen.


    Mein Code hierzu lautet



    Beim Aufruf von AdminView.createView()... erzeugt folgender Code eine Meldung: Promise pending

    Code
    1. const content = this.loadText().then((filecontent) => {return filecontent;});


    Weiß jemand wie ich das fixen kann?

  • Hallo halgo,


    bei dir geht das mit dem asynchronen und dem synchronen ziemlich durcheinander.


    JavaScript
    1. /* ... */
    2. createView() {
    3. const content = this.loadText().then((filecontent) => {
    4. return filecontent;
    5. });
    6. // Hier liegt das Problem
    7. return html`${content.text}`;
    8. }
    9. /* ... */

    Hier hast du ein Timing Problem. Zu dem Zeitpunkt, an dem du von der Funktion returnst, ist das Promise. noch nicht fulfilled.

    Daher bekommst du ein Pending Promise.


    Schau' dir mal das an:

    Making asynchronous programming easier with async and await (mdn)


    Ein Tip für den Anfang:

    entscheide dich für ENTWEDER async / await ODER then / catch / finally

    nicht für beides gleichzeitig.