Verileri yüklemek için bir dizim var ve onların sunucuya tek tek göndermelerini istiyorum. Bir öncekini göndermeden önce bir öncekinin bitmesini istiyorum. Aslında, her cevaptan sonra bir sonraki mesajın gönderilip gönderilmeyeceğine karar vermek istiyorum.Dizi döngüsünde AJAX çağrısı, yalnızca önceki tamamlandıktan sonra çağrı yap
while (packetCount < bulkUploadPackets.length) {
d = d.then(save(bulkUploadPackets[packetCount]))
.then(function(uploadResponse) {
//I want to come here after first call complete
//before second call is fired and so on
packetCount++;
});
}
save: function(modelToSave) {
var defer = $.Deferred();
var self = this;
this.model = modelToSave;
Backbone.sync('create', this, {
success: function(data, textStatus, jqXHR) {
console.log("success" + data);
defer.resolve(data);
},
error: function(response) {
defer.reject(errorObj);
}
});
return defer.promise();
}
AJAX asenkron olur ve uyumsuz kullanmak gerekir. Eğer bir işlem sırasını korumak istiyorsanız, bunu yapmak için AJAX ile savaşmamalısınız, daha ziyade bu mantık sunucu tarafını uygulayın ve tüm diziyi tek bir isteğinize gönderin ... – MarioDS