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?
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?
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