Ich habe eine Folge von Funktionen, die ausgeführt werden müssen. Sie alle werden nacheinander ausgeführt, mit Ausnahme des letzten. d1 führt aus, d2 führt aus, d3 führt aus, dann wird der Code innerhalb der done-Funktion vor der Auflösung von d4 ausgeführt. Kann nicht herausfinden warum. Jede Hilfe wäre willkommen.Jquery Defered Nicht zuletzt.
$(document).ready(function() {
var d1 = functiond1();
var d2 = functiond2();
var d3 = functiond3();
var d4 = functiond4();
d1.then(d2).then(d3).then(d4).done(function() {
//Code here does not wait for d4 to end before executing
//HELP!
});
});
function functiond1() {
var dfd = $.Deferred();
//Do stuff here
//Works in sequence
dfd.resolve();
return dfd.promise();
}
function functiond2() {
var dfd = $.Deferred();
params = jQuery.param({
'parm1': 1,
'parm2': 2,
'parm3': 3
});
jQuery.getJSON($.webMethoJSONGet1, params).done(function(data) {
//Do stuff here
//Works in sequence
dfd.resolve();
});
return dfd.promise();
}
function functiond3() {
var dfd = $.Deferred();
//Do stuff here
//Works in sequence
dfd.resolve();
return dfd.promise();
}
function functiond4() {
var dfd = $.Deferred();
params = jQuery.param({
'parm1': 1,
'parm2': 2,
'parm3': 3
});
jQuery.getJSON($.webMethoJSONGet2, params).done(function(data) {
//Do stuff here
//does not work in sequence
dfd.resolve();
});
return dfd.promise();
}
Wenn um Hilfe zu bitten, einrücken bitte Ihren Code readably . Ich habe den Code durch jsbeautifier für Sie ausgeführt. –
Toller Tipp. Erledigt wie gewünscht. Irgendwelche Tipps in Bezug auf den Code? –
Warum haben Sie bisher den gesamten Code eingerückt? Ich habe es bereits für dich festgelegt, jetzt ist mehr davon rechts davon als nötig. Ich habe es neu festgelegt. –