2016-11-17 2 views
0

vervollständigt ich eine Seite wie diese haben.

$(document).ready(function() { 
    $.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall()); 
}); 

Aus irgendeinem Grund die finalCall() durch $.when() umgeben gleichzeitig mit den drei Anrufe zu feuern.

Ich habe versucht, einen Verweis auf die finalCall() Funktion wie im Aufruf:

$(document).ready(function() { 
    $.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall); 
}); 

Aber selbst dann ist es noch die Funktion vor dem vor 3 vollständig abfeuert.

HINWEIS: Ich schließe die Funktionen hier nicht ein, da sie nicht relevant sind. Ich muss nur wissen, warum die finalCall() Funktion gleichzeitig zu Funktionen feuern würde.

Vielen Dank.

+1

* "Ich füge die Funktionen hier nicht ein, da sie nicht relevant sind." * Außer .... sie sind wahrscheinlich relevant, wenn der Wechsel von 'finalCall()' zu 'finalCall' das Problem nicht löst. –

Antwort

2

$.when ruft Ihren Rückruf überhaupt nicht an. Sie tun es selbst:

//              vv 
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall()); 
//              ^^ 

ändern, dass zu

$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).then(finalCall); 

wo die Funktion tatsächlich in das Versprechen Methode übergeben wird, und es wird funktionieren (vorausgesetzt, Ihre Ajax-Funktionen Versprechen zurück).

Verwandte Themen