jQuery.Ajax返回空数组

jQuery.ajax returning empty array

本文关键字:数组 返回 Ajax jQuery      更新时间:2023-09-26

我目前正在学习使用API。我正在从我的Github仓库检索数据。我试图让脚本加载JSON信息到githubData变量。但是当我将githubData变量记录到控制台时,它返回一个空数组。然而,如果我在加载页面后用完全相同的函数创建一个新变量,脚本就会完全正常工作。当页面加载时,它并没有加载实际数据。它加载一个空数组。我意识到这个函数是异步的,那么我如何在加载页面时使数组不为空呢?下面是我的代码:

var githubAPI = 'https://api.github.com/repos/zacharysohovich/ticTacToe/readme';
var items = {};
jQuery.ajax({
  url: githubAPI,
  contentType: 'application/json; charset=utf-8',
  success: function(resultData) {
    $.each(resultData, function(key,val) {
      items[key] = val;
    });
  }
});
var githubData = $.map(items,function(k,v) {
  return ("<p>" + k + ": " + v + "</p>");
});

问题是这是一个异步调用,这意味着一旦它触发了请求,它就会进入下一段代码。一旦它到达githubData项仍然是一个空对象,因为还没有收到api响应。我会在var items = {}下面实例化githubData变量就像

var items = {} var githubData; 然后在success:函数中,在你做$之后。每个你都可以放

githubData = $.map(items,function(k,v) { return ("<p>" + k + ": " + v + "</p>"); });

这确保API调用已经完成,并且只要响应返回的内容

项中应该包含一些内容