我正在学习 XMLHttpRequest。写了一个 github API 请求。获得所有用户。这个想法是,我创建一个空数组,发出一个 github 请求来获取所有用户。然后我把 id 键的值压入这个空数组。我得到了一个 id 数组。然后我想获取一个 id 并通过这个 id 获取特定用户并获取特定用户的一些属性。这是我的代码。问题是我将带有我的id的数组输出到控制台,但我无法对它做任何事情并通过索引获取值,无法通过各种方法进行排序。我想获取 idArray 数组的一个单独元素,我得到 undefined,虽然我在控制台中看到了数组的值。我哪里错了?
let idArray = [];
const xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.github.com/users?since=0", true);
xhr.onload = function () {
if (xhr.status != 200) {
alert(xhr.status + ': ' + xhr.statusText);
} else {
//console.log(xhr.responseText);
const newData = xhr.responseText;
let userData = JSON.parse(newData);
//console.log(userData);
userData.forEach(function(item, i, userData) {
//console.log(item.id);
idArray.push(item.id);
});
}
}
xhr.send(null);
console.log(idArray);
for(let i = 0; i <= idArray.length-1; i++){
alert(idArray[i]);
};
Array.isArray(idArray);
有必要在 中处理
onload,在此之前没有数据:它们只是还没有加载。并且您尝试在发送请求后立即与他们合作,然后再执行。
在控制台中,当数组已满时,会在一段时间后显示该数组。
你做的一切都是对的,只需要在 onload 中处理数据这是一个例子,XMLHttpRequest 部分