簡體   English   中英

遍歷數組,每次都進行ajax調用,不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM