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