[英]looping through an array, and making an ajax call each time, not working
我遇到了這個問題,基本上,我有一個大數組,每次循環執行一次循環時,我都會分解為較小的數組。 在循環中,我有一個ajax調用,它將該數組發送到URL。 問題在於它只進行一次ajax調用,但是將其他較小的數組記錄在控制台中。 知道為什么會這樣嗎?
//emailArray = [email1@something.com, email2@something.com..... (up to a number greater than 10)
while(emailArray.length) {
console.log(emailArray.splice(0,10));
$.ajax({
url:"some/url",
type: "POST",
data: {
"object": emailArray.splice(0,10)
},
dataType: "json",
success: function (data, status, xhr) {
//callback(data);
console.log('data from success');
console.log(data);
}
});
console.log('after ajax');
}
編輯,循環被設計為在大數組中每10個項目發送一個新的ajax請求,並且發送的數組中有10個項目。 當我將它們記錄到控制台中時,.splice可以很好地分解數組...但是它沒有做ajax部分
.splice()
對源數組具有破壞性,因此您的console.log(emailArray.splice(0,10));
搞砸了emailArray並導致您錯過迭代。
您可以在console.log()
語句中使用.slice()
(不是破壞性的,但是會返回一個副本),而不是.splice()
,如下所示:
//emailArray = [email1@something.com, email2@something.com..... (up to a number greater than 10)
while(emailArray.length) {
console.log(emailArray.slice(0,10));
$.ajax({
url:"some/url",
type: "POST",
data: {
"object": emailArray.splice(0,10)
},
dataType: "json",
success: function (data, status, xhr) {
//callback(data);
console.log('data from success');
console.log(data);
}
});
console.log('after ajax');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.