Using warten außerhalb einer asynchronen Funktion

Ich habe versucht, zwei asynchrone Funktionen miteinander zu verketten, da die erste einen bedingten Rückgabeparameter hatte, durch den die zweite ausgeführt oder das Modul beendet wurde. Ich habe jedoch ein merkwürdiges Verhalten festgestellt, das ich in den technischen Daten nicht finden kann.

async function isInLobby() {
    //promise.all([chained methods here])
    let exit = false;
    if (someCondition) exit = true;
}

Dies ist ein bastardisierter Ausschnitt aus meinem Code (Sie können den vollen Umfang sehenHie), das prüft einfach, ob ein Spieler schon in einer Lobby ist, aber das ist irrelevant.

Nächste haben wir diese asynchrone Funktion.

async function countPlayer() {
    const keyLength = await scardAsync(game);
    return keyLength;
}

Diese Funktion muss nicht ausgeführt werden, wennexit === true.

Ich habe versucht, @ zu t

const inLobby = await isInLobby();

Dies hoffe ich würde auf Ergebnisse warten, damit ich @ verwenden kainLobby bedingt ausführencountPlayer, ich habe jedoch einen Tippfehler ohne genaue Angaben erhalten.

Warum kannst du nichtawait einasync Funktion außerhalb des Funktionsumfangs? Ich weiß, es ist ein Zuckerversprechen, also muss es angekettet werden anthen aber warum ist es das incountPlayer Ich kann ein weiteres Versprechen erwarten, aber draußen kann ich nichtawait isInLobby?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage