2015-01-15 37 views
0

我需要AJAX已經修改後的訪問對象之外,但是當我嘗試打印它,它會顯示一個空值使用Javascript - 如何訪問對象的成功塊

我怎樣才能解決這個問題?

$(document).ready(function(){ 
    var arrayLength = whatever...; 
    var myArray = []; 

    for (var i = 0; i < arrayLength; i++) { 

     $.ajax({ 
      myArray: myArray, 
      type: 'GET', 
      dataType: 'jsonp', 
      data: {}, 
      url: "https://api....", 
      error: function (jqXHR, textStatus, errorThrown) { 
       console.log(jqXHR) 
      }, 
      success: function (response) { 
       var name = response.data.name; 
       var url = response.data.url; 
       for(var x = 0; x < 5; x++) { 
        var pin = {name: name, url:url}; 
        myArray.push(pin); 
       } 
      }, 
      async: false 
     }); 
    } 

    // I want to print myArray here 
}); 
+0

是什麼''myArray'推allPins''pin'不'allPins'和刪除'myArray的:myArray的,' – 2015-01-15 15:26:29

+1

如何myArray的使用?看起來好像根本沒被訪問 – atmd 2015-01-15 15:29:19

+0

@RobH,他使用'async:false',所以我不確定鏈接的頁面是否相關。 – ikegami 2015-01-15 15:31:05

回答

0
$(document).ready(function(){ 
    var arrayLength = whatever...; 
    var myArray = []; 

    for (var i = 0; i < arrayLength; i++) { 

     $.ajax({ 
      //myArray: myArray, 
      type: 'GET', 
      dataType: 'jsonp', 
      data: {}, 
      url: "https://api....", 
      error: function (jqXHR, textStatus, errorThrown) { 
       console.log(jqXHR) 
      }, 
      success: function (response) { 
       var name = response.data.name; 
       var url = response.data.url; 
       for(var x = 0; x < 5; x++) { 
        var pin = {name: name, url:url}; 
        //allPins.push(pin); 
        myArray.push(pin); 
       } 
      }, 
      async: false 
     }); 
    } 

    // I want to print myArray here 
}); 
+0

不會'myArray'仍然不填充async:true的那一點? – atmd 2015-01-15 15:33:28

+1

您從'async:false'更改爲'async:true'會導致打印太快。 – ikegami 2015-01-15 15:33:49

+0

@ikegami和atmd感謝你的評論。 – 2015-01-15 15:40:13