使用带有 Fetch API 响应的承诺仍然使我的数据返回为未定义
Using a promise with Fetch API response still has my data returning as undefined
我正在构建一个简单的网络应用程序,允许用户在视频游戏中搜索玩家的统计数据。
这是我的代码
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
数组中的感染数据来执行一些其他操作。
为什么返回undefined?为什么我的回复不会被推送到 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 是错误的方式
据我所知,您可能在这里错误地切换了数组和数据
在下面的代码中,您不小心将数组推送到 playerData 而不是 opisite
playerData.push(player);
你应该这样做
player.push(玩家数据)
而且我认为你也应该删除第二个,如果你按照人们在这里所说的那样控制台记录它来获取数据,但我认为你也可以使用第一个然后如果你想要第二个就这样做:
function getPlayer() {
return fetch(url)
.then((response) => response.text())
.then((data) => data);
}
我正在构建一个简单的网络应用程序,允许用户在视频游戏中搜索玩家的统计数据。
这是我的代码
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
数组中的感染数据来执行一些其他操作。
为什么返回undefined?为什么我的回复不会被推送到 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 是错误的方式
据我所知,您可能在这里错误地切换了数组和数据 在下面的代码中,您不小心将数组推送到 playerData 而不是 opisite
playerData.push(player);
你应该这样做 player.push(玩家数据)
而且我认为你也应该删除第二个,如果你按照人们在这里所说的那样控制台记录它来获取数据,但我认为你也可以使用第一个然后如果你想要第二个就这样做:
function getPlayer() {
return fetch(url)
.then((response) => response.text())
.then((data) => data);
}