$ .each döngüsünde başarı işlevinde (ajax) değerler almayla ilgili bir sorunum var.jQuery ajax her döngüde
Böyle bir şey var:
var test = [];
$.each(images, function(index){
var formData = new FormData();
formData.append('image', images[index]);
$.ajax({
url: 'http://localhost/admin/api/offers/upload_photo',
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
beforeSend: function(){
console.log(test.length);
test.push(images[index]);
},
success: function(){
console.log(test.length);
}
});
});
Ve beforeSend çıkış ince (konsol günlüğü: 0, 1, 2) çalışır, ancak başka bir ile üç kez 3 (konsol günlüğü döndürür: 3, 3, 3). Gerisi hiçbir sorun olmadan çalışıyor, sadece onunla mücadele ediyorum. Bana yardım edebilecek biri var mı? Teşekkürler!
tam olarak olması gereken şeyi yapıyor gibi görünüyor. –
Görünüşe göre, "her" döngü, "başarı" işlevlerinden herhangi biri ateşlenmeden önce bitiyor. Yani, "başarı" zamanın birinden dolayı ateş edince, döngü tamamlandı ve "test" in uzunluğu üç. Bu, bilgilendirici olabilir: [Yanıtı bir zaman uyumsuz çağrısından nasıl döndürebilirim?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-thall – showdev
Bu yüzden ajax async :) adından da anlaşılacağı gibi :) –