javascript - 使用嵌套 AJAX 调用的响应填充数组

标签 javascript jquery ajax callback

我有一个数组,我想用 AJAX 调用的响应来填充它,如下所示:

var dict = [];

function fillArray(){
  $.post('getUsersOnline.php', function(phpReturnVal){
    // ...
    for(var i = 0; i < phpReturnVal.length; i++){
        $.get("https://api.twitch.tv/kraken/streams"  , function(data){
          dict[data.key] = data;
    });
  });
}

function doStuff(){
  // dict is empty or undefined here
}

我如何用对象填充字典,以便我可以在 doStuff() 中检索它们?目前,我可以将内容插入到 dict 中,但是当我尝试访问 fillArray() 函数之外的 dict 时,我得到一个空的 dict 变量,因为我假设 GET 调用是异步的,并且直到所有 JS 代码之后才会发生已执行...

最佳答案

因此,dict 是一个没有 push 方法的对象。您需要 dict=[]; 如果您必须有 {},那么您需要键:值对来填充它,例如:

dict[key] = value;

关于javascript - 使用嵌套 AJAX 调用的响应填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335048/

相关文章:

javascript - 如何动态加载JS、CSS文件以避免性能问题

javascript - JSON 键的小数点不按顺序排列

javascript - 如何在设备检测jquery脚本中调用一组.js文件

javascript - 如何取消 Javascript Promise 中的超时?

php - 发送新值后自动刷新下拉列表

jquery 做简单的数学运算?

javascript - AJAX POST 浏览器历史记录

javascript - 我找不到放置在 map 中的图标

javascript - 模态对话框中的 Jquery UI 选择菜单

javascript - 通过javascript点击获取 'for'值