Executando verificação de segurança...
2

No contexto de javascript não é exatamente quando vai ser finalizado, mas se vai ser finalizado ao mesmo tempo que você precisa fazer outras coisas, o exemplo de cartas não representa bem a questão, um exemplo melhor:

Imagine um consultório médico ou enfermagem

O profissional identifica o paciente e busca o prontuário (seja sistema, pedir pra alguém buscar, desafixar no leito... Não importa) (async)

Enquanto o prontuário não chega ele vai fazendo a tal anamnese que é perguntar pro paciente o que ele está sentindo (sync)

Terminou a anamnese? Verifica se o prontuário chegou (scheduler de microtask interno do javascript)

Agora ele colhe dados vitais do paciente, frequência respiratória, cardíaca, pressão... (sync)

Terminou? Verifica se o prontuário chegou (scheduler de microtask interno do javascript)

Se o prontuário tiver chegado ele registra os dados, lê o prontuário e faz a prescrição (sync)

Prontuário não chegou? Aguarda (await)

Prontuário ainda não existe? Cria o prontuário (catch)

E aguarda os farmacêuticos (await) liberarem a medicação e depois a equipe técnica preparar e aplicar a medicação (sync)

Então async/promisses em JS é mais sobre pegar algo necessário apenas no final que sobre quando esse algo será finalizado

Carregando publicação patrocinada...