【发布时间】:2020-11-06 08:38:25
【问题描述】:
我正在构建一个简单的网络应用程序,允许用户在视频游戏中搜索玩家的统计数据。
这是我的代码
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 数组中?
【问题讨论】:
-
您想使用
player.push(playerData),并且您还想删除控制台登录getPlayer()的.then(),或者在getPlayer()返回的最后一个.then()中进行回调data(所以它在下一个返回的承诺中可用)。请记住,player中的数据只有在您推送到它后才可用,这是异步发生的。
标签: javascript arrays asynchronous promise fetch