Supponiamo che io sono un gestore di eventi che rende due chiamate AJAX al server:I gestori di eventi sono garantiti per il completamento prima che vengano richiamati i callback AJAX?
$("#foo").click(function(){
$.get("bar", function(){ alert("Hello"); });
$.get("baz", function(){ alert("World"); });
});
mi rendo conto che l'ordine in cui vengono chiamati i callback è non deterministico, in quanto dipende da quanto tempo ogni richiesta prende, etc.
Ma ecco la mia domanda: è garantito che raggiungerò la fine del mio gestore di eventi prima che venga richiamata una delle funzioni di callback? Ho letto che tutto il Javascript per una pagina viene eseguito in un singolo thread, quindi penso che ciò implichi che il mio gestore di eventi click
sia garantito per essere completato prima di poter richiamare qualsiasi callback.
È corretto? O è possibile che la prima richiesta sia completa E la prima callback eseguita prima che arriviamo alla fine del nostro gestore di eventi?
L'OP non sta chiedendo informazioni su compiti asincroni che ritornano fuori ordine –
No, non lo è, ma sto dicendo che se controlla tutte le sue chiamate asincrone che probabilmente non incontrerà il problema che sta cercando di evitare nel primo posto. Il che sembra essere quello di assicurarsi che un conduttore termini prima degli altri handler. –
"È corretto? O è possibile che la prima richiesta sia completa E la prima callback eseguita prima che arriviamo alla fine del nostro gestore di eventi?" Se è programmato in un modo che lo rende esplicito, di quanto non avrebbe questa domanda, vero? –