javascript - 如何获取局部变量以更新 html(fetch) 中的全局变量?
问题描述
我的代码:
var total_cases = 0;
var new_cases = 0;
var total_deaths = 0;
fetch('https://covid.ourworldindata.org/data/owid-covid-data.json')
.then(res => {
return res.json()
})
.then (raw_data => {
for (const key in raw_data) {
const country = raw_data[key];
const country_data = country.data;
const latest_data = country_data[country_data.length - 1];
console.log(latest_data);
if (country.location != "World") {
if (latest_data.total_cases != null) {
total_cases += latest_data.total_cases;
}
if (latest_data.new_cases != null) {
new_cases += latest_data.new_cases;
}
if (latest_data.total_deaths != null) {
total_deaths += latest_data.total_deaths;
}
}
console.log(total_cases); /*It will give a result for every loop*/
}
})
document.getElementById("total_cases").innerHTML = total_cases;
document.getElementById("new_cases").innerHTML = new_cases;
document.getElementById("total_deaths").innerHTML = total_deaths;
如果我这样做:
<div id="total_cases"></div>
结果为0。要更改的代码是什么?我知道有人可能已经回答了有关函数的类似问题,但我仍然不了解 fetch 的范围。
解决方案
var total_cases = 0;
var new_cases = 0;
var total_deaths = 0;
fetch('https://covid.ourworldindata.org/data/owid-covid-data.json')
.then(res => {
return res.json()
})
.then (raw_data => {
for (const key in raw_data) {
const country = raw_data[key];
const country_data = country.data;
const latest_data = country_data[country_data.length - 1];
console.log(latest_data);
if (country.location != "World") {
if (latest_data.total_cases != null) {
total_cases += latest_data.total_cases;
}
if (latest_data.new_cases != null) {
new_cases += latest_data.new_cases;
}
if (latest_data.total_deaths != null) {
total_deaths += latest_data.total_deaths;
}
}
console.log(total_cases); /*It will give a result for every loop*/
}
document.getElementById("total_cases").innerHTML = total_cases;
document.getElementById("new_cases").innerHTML = new_cases;
document.getElementById("total_deaths").innerHTML = total_deaths;
})
将分配移动到“then”上下文中
推荐阅读
- angular - Angular 9 项目在生产环境中不起作用
- amazon-web-services - serverless-s3-sync 只是将特定文件夹同步到 s3
- django - 创建一个 Django 模型,该模型存储从另一个模型中随机选择的对象列表
- git - 如何在 Intellij Idea 的“版本控制”中返回“控制台”选项卡?
- sql - 在双引号之间替换字符串中的字符
- c# - 当我单击一个按钮时,Unity 会激活另一个按钮(BUG)c#
- python - 基于分隔字符串从长字符串中提取值
- html - 图像下的渐变
- javascript - 在 Stenciljs 中初始加载后将子项添加到 div
- shader - 如何在 WebGL 中使用数据纹理