我正在构建一个简单的网络应用程序,允许用户搜索视频游戏中玩家的统计数据。
这是我的代码
let player = [];
let proxy = "https://cors-anywhere.herokuapp.com/"
let url = proxy + "https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=Hess"
function getPlayer() {
return fetch(url)
.then((response) => response.text())
.then((data) => console.log(data));
}
getPlayer().then((playerData) => {
console.log(playerData);
playerData.push(player);
console.log(player);
});
如您所见,我正在尝试 console.log 响应并将响应推送到数组 player
,以便稍后可以在 player
中使用受影响的数据数组来执行一些其他操作。
为什么返回未定义?为什么我的响应不会被推送到 player
数组中?
最佳答案
let player = [];
let proxy = "https://cors-anywhere.herokuapp.com/"
let url = proxy + "https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=Hess"
function getPlayer() {
return fetch(url)
.then((response) => response.text())
.then((data) => {
console.log(data)
return data;
});
}
getPlayer().then((playerData) => {
console.log(playerData);
player.push(playerData);
console.log(player);
});
您需要确保在 .then() 的每一步都返回一个值。而你的 .push 是错误的方式
关于javascript - 使用带有 Fetch API 响应的 promise 仍然会使我的数据返回为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62938725/