Uso de esperar fuera de una función asíncrona

Intenté encadenar dos funciones asíncronas, porque la primera tenía un parámetro de retorno condicional que hacía que la segunda se ejecutara o saliera del módulo. Sin embargo, he encontrado un comportamiento extraño que no puedo encontrar en las especificaciones.

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

Este es un fragmento bastardo de mi código (puede ver el alcance completoaquí), eso simplemente verifica si un jugador ya está en un lobby, pero eso es irrelevante.

A continuación tenemos esta función asíncrona.

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

Esta función no necesita ejecutarse siexit === true.

Intenté hacer

const inLobby = await isInLobby();

Esto esperaba que esperara resultados, para poder usarinLobby correr condicionalmentecountPlayer, sin embargo, recibí un error tipográfico sin detalles específicos.

Porque no puedesawait unasync función fuera del alcance de la función? Sé que es una promesa de azúcar, por lo que debe encadenarse athen pero por qué es eso encountPlayer Puedo esperar otra promesa, pero afuera no puedoawait isInLobby?

Respuestas a la pregunta(3)

Su respuesta a la pregunta