Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

ASSINCRONO X SINCRONO

Então se eu tiver

console.log(funcaoAssincrona()); console.log(funcaoSincrona());

E a funcaoAssincrona() retorna 1 e a funcaoSincrona() retorna 2 então a exibição será:

2 1

Correto?

1 resposta
solução!

Não, pois o programa que está imprimindo a saída é sincrono, e o JavaScript é single threaded, então o console.log da func assincrona deve ser avaliado antes do console.log da func sincrona, ja que foi assim que você escreveu.

Fora que, se funcaoAssincrona for assíncrona mesmo, ela retornaria um objeto do tipo Promise que resolverá para o valor 1 -- e não o valor 1 em si. Logo,console.log(funcaoAssincrona())imprimiria algo como Promise { pending }

Se o console estivesse dentro das funções, aí sim a saída poderia ser 2 1