【发布时间】:2019-11-30 12:39:00
【问题描述】:
我希望使用 Fetch() 或 Jquery GetJson() 每 5 秒独立获取一些 json 数据(json 文件)。
我希望另一个函数使用该数据并在循环中显示一个名称数组,一次选择 8 个(大约 100 个名称)。 (待实施)
我该如何等待数据?我知道我需要等待数据异步返回。
var data = null;
var dataPath = "../data/GolfData.json";
$(document).ready(function () {
console.log('working...');
DisplayData(data);
});
/* Fetch Data
------------------------------------------ */
function FetchData() {
fetch(dataPath)
.then(function (response) {
return response.json();
})
.then(function (json) {
data = json;
console.log(data)
return data;
})
.catch(function (error) {
setInterval(FetchData, 5000);
console.log(error);
})
}
FetchData();
setInterval(FetchData, 5000);
function DisplayData(data) {
console.log('data ', data);
}
控制台:数据为空
【问题讨论】:
-
将您的
DisplayData函数放入.then。fetch(dataPath).then(...).then(...).then(DisplayData) -
@ktilcu 但这将意味着每 5 秒也会调用一次 DisplayData(data)。正确的?我想避免这种情况。
-
是的。所以你想每 5 秒获取一次数据,将其存储在某个地方,然后在稍后的某个时间显示最新数据?
-
@ktilcu 是的。我该怎么做呢?
-
@nbokmans,不确定我是否会将其归类为重复,另一个问题更普遍地是关于异步请求,而不是关于如何定期执行它们等......
标签: javascript html fetch-api