JavaScript: passar a função como um parâmetro para outra função, o código é chamado em outra ordem, então eu espero
u quero passar uma função para outra função como parâmetr
Eu quero fazer isso porque a última função chama um método Jquery assíncrono e APÓS que devolve um resultado, quero que algum código javascript seja executad
E como essa função é chamada de vários locais, quero que o código seja executado (depois que o código assíncrono do Jquery for executado) seja passado na função. Faz sentido? eu espero :
gora, o que vemos é que a ordem em que o código é executado não é o que eu quero. Simplifiquei o código para este código:
$('#AddThirdParty').click(function() {
var func = new function() {
alert('1');
alert('2');
alert('3');
}
alert('4');
LoadHtml(func);
alert('5');
});
function LoadHtml(funcToExecute) {
//load some async content
funcToExecute;
}
gora, o que eu queria alcançar (ou pelo menos o que eu pensava que aconteceria) era que o alert4 fosse acionado, o loadhtml dispararia o alert1, alert2 e alert3, e o código retornaria ao alert
Mas o que acontece é: alert1, alert2, alert3, alert4, alert5.
lguém sabe o que estou fazendo de errado e por que essa é a ordem na qual o código é executad
Parece que o alert1..alert3 é executado quando eu defino onew function()
, mas por que ele também não é executado quando eu o chamo deLoadHtml
função?