0

Any idea why the following return an empty array? I cannot understand or debug this error. Initially, storearray1 returns array with values in it. Subsequent usage, storearray1 returns an empty array. If possible can help provide a solution to this problem. I am confused.

   function f1(){
    var storearray1=[];
    for (var skip = 0; skip < 9000; skip = skip + 500) {
      $.ajax({
          url: "/api/routes?$skip=" + skip,
          success: function(results) {
              //Set result to a variable for writing
              var objs = JSON.stringify(results);
              var routetimeobjs = JSON.parse(objs);
    
              storearray1.push(routetimeobjs['value']);
          }
      });
    
    }
}




    function showresult(){
              console.log(storearray1);//work (refer to image)
              var actualarray=storearray1;
              console.log(actualarray); //does not work- return empty array
        }
showresult();

Console Log for storearray1:

Console Log for storearray

Lawrence
  • 165
  • 8

1 Answers1

0

Try this.

var storearray1=[];
var calls = [];

for (var skip = 0; skip < 9000; skip = skip + 500) {
  (function(skp) {
    var c = $.ajax({
          url: "/api/routes?$skip=" + skp,
          success: function(results) {
              //Set result to a variable for writing
              var objs = JSON.stringify(results);
              var routetimeobjs = JSON.parse(objs);

              storearray1.push(routetimeobjs['value']);
          }
      });

      calls.push(c);
    })(skip);
}

$.when(...calls).then(() => console.log(storearray1));
Mansoor Omrani
  • 226
  • 2
  • 10