Sinceramente, você está compartilhando do analfabetismo funcional.
Tá bom cara, já que ofendeu, agora prove, faz uma demonstração de algo sendo executado fora de sincronia em Jvascript sem usar WebAPI e Workers, porque Promises são "agendadas" logo após serem criadas logo:
console.log("Início da execução");
new Promise((resolve) => { console.log("Blah"); });
console.log("Fim da execução");
Não demonstra isso porque new Promise((resolve) => { console.log("Blah"); });
é executado na ordem (ou sincrono) colocando (resolve) => { console.log("Blah"); }
para ser executado após, e isso:
async teste () => {
console.log("Blah");
}
console.log("Início da execução");
teste();
console.log("Fim da execução");
É essencialmente a mesma coisa teste();
é executado de forma sincrona e uma função interna é chamada contendo { console.log("Blah"); }
é executada a posteriori, setTimeout
segue a mesma linha, ambas são Out-of-Order Execution mas nenhuma é assíncrona, apenas modificam a pilha