Guten Abend,

ich bin in einer asyncronen funktion aber nicht in der höchsten modulebene weswegen ich kein await nutzen kann

Ich denke, du irrst dich - die Bedeutung asynchroner Funktionen liegt in der Verwendung des await-Keywords. Die Verwendung von await ist meines Wissens nach nur in CommonJS-Modulen auf höchster Modulebene nicht möglich. Bei ES-Modules sieht die Sache schon ganz anders aus.

Wie dem auch sei, @regex9 hat dir die verschiedenen Möglichkeiten schon genannt. Unter Verwendung eines Closures etwa folgendermaßen:

function sleepWithCallback(callback)
{
  setTimeout(() => callback(), 3000);
}


sleepWithCallback(() => console.log('after 3 seconds!'));

Oder alternativ unter Verwendung einer Promise:

function sleepAsPromise()
{
  return new Promise(resolve => {
    setTimeout(() => resolve(), 3000);
  });
}


// via callback
sleepAsPromise().then(() => console.log('after 3 seconds!'));


// via await (ES-Modul)
await sleepAsPromise();
console.log('after 3 seconds!');


// via await (CommonJS-Modul)
(async () => {
  await sleepAsPromise();
  console.log('after 3 seconds!');
})();

Der gekapselte Aufruf von setTimeout wartet dabei 3 Sekunden, bis die Callback-Funktion im ersten Argument aufgerufen wird.

LG

...zur Antwort

Dass DOM-Nodes eine innerText Eigenschaft haben wäre mir neu, hast Du mal in die Konsole geschaut? In der Regel die erste und beste Anlaufstelle zum Debuggen.

Vermutlich meinst du textContent bzw solltest Du auf diese Eigenschaft zurückgreifen.

...zur Antwort