jQuery / javascript questão, é um manipulador de clique executado de forma assíncrona?
-
19-09-2019 - |
Pergunta
se eu tiver
$("a#foo").click();
$("a#bar").click();
dostuff();
e ambos têm manipuladores de clique em anexo, que fazem diferentes things..is garantiu que manipulador de clique do bar só irá executar após concluída do foo? ou eles são enviados asyncronously
similarly..will doStuff () somente executar após foo e manipuladores de clique do bar completo?
Solução
O modelo de execução Javascript no navegador é rosca única (de modo geral), então não há nenhuma expedição assíncrona acontecendo coisas em qualquer lugar fora como o HttpXmlRequest.
Assim, a função foo click () irá retornar antes bar click () é chamado, que retornará antes doStuff () é chamado.
Outras dicas
Depende do que foo faz (Você poderia tecnicamente configurar foo para eventos de fogo usando setTimeout que podia disparar depois da conclusão do método), mas sim bar deve disparar após concluída foo.