javascript - 使用带有 Fetch API 响应的 promise 仍然会使我的数据返回为未定义

标签 javascript arrays asynchronous promise fetch-api

我正在构建一个简单的网络应用程序,允许用户搜索视频游戏中玩家的统计数据。

这是我的代码

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/

相关文章:

javascript - 使用 async.each 异步循环 mongoose 集合

php - 单击一个简单的 HTML 按钮以通过 jQuery/Javascript 和 PHP 写入数据库

javascript - 使用 JavaScript 进行回调

javascript - 在数组中搜索两个参数

PHP 数组到 MYSQL 的插入在 11,000 行后停止

java - FileInputStream 在 .close() NPE 上崩溃

c# - EndReceive 永远不会返回 0,你怎么知道数据包在 tcp/ip 中何时完成?

javascript - 如何在时间符号中自动插入前导零

javascript - 在这种情况下如何在 jquery 中传递两个参数?

arrays - 与python结果不同的矩阵点积