我目前正在使用一个不返回 JSON 的 API。为了解决这个问题,我获取响应并将其推送到一个数组(同时对其进行格式化以删除任何缩进并拆分响应中的每个数字)。然后,我使用这个包含 183 个数字的数组,并对包含 183 个字符的数组运行 for 循环,以根据响应生成一个对象(具有自定义键值对)。
当我开始使用 HTML 中的数据时,事情变得令人困惑。通常你可以直接说<p>{data.overallRank}</p>,但我收到了对象未定义的错误。这是有道理的,因为 是data = {}在函数运行之前才创建的。
在寻找解决方案后,我遇到了苗条的等待块。您可以在这里阅读它们并查看教程:https ://svelte.dev/tutorial/await-blocks
在尝试实现此功能后,我有以下代码:
let playerStats = []
let proxy = "https://cors-anywhere.herokuapp.com/"
let url = proxy + "https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=Hess"
const data = {};
let promise = getPlayer();
async function getPlayer() {
return await fetch(url).then((response) => response.text())
.then((data) => {
return data;
});
}
getPlayer().then((playerData) => {
// format data
playerStats.push(playerData.replace(/\n/ig, ",").split(','));
console.log(playerStats);
// Begin object generation
// names array shortened
let …Run Code Online (Sandbox Code Playgroud)