javascript - 如何通过 D3 重复和延迟对 API 的调用

标签 javascript json api d3.js

调用一次获取数据的API并不难,难的是如何让它持续进行。比如每 5 秒生成一次对某个 API 的调用?有什么方法可以在 d3.json() 上使用 .delay() 吗?

下面是只执行一次这个过程的代码:

<script src="http://d3js.org/d3.v5.min.js"></script>
<script>
d3.json("https://api.exchangeratesapi.io/latest")
  .then(function(data) {
    console.log(data);
  })
</script>

最佳答案

d3.json() 或其他 D3 获取函数没有什么不同(我指的是函数)。您可以将它放在 setInterval 中,或者,因为这是 D3 代码,所以可以放在 d3.interval 中。

这是一个简单的演示,我使用的是生成随机值的 API,而不是您的 API,因此您可以看到它是有效的:

getData();
d3.interval(getData, 5000);

function getData() {
  d3.json("https://randomuser.me/api/").then(function(data) {
    console.log(JSON.stringify(data.results[0].name));
  })
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

我是第一次按常规方式调用该函数,否则它只会在 5 秒后被调用。关于延迟,如果只调用一次,可以使用setTimeout(或d3.timeout)。

关于javascript - 如何通过 D3 重复和延迟对 API 的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54187959/

相关文章:

javascript - Flask 模板不会重新渲染

javascript - 错误消息 : DateField. getValue() 不是函数

java - JSON异常 : Names must be strings

javascript - 从 api url 打印 json 数据

Javascript 菜单项图像不粘

javascript - 如何突出显示 Amazon Polly 中的音频播放词

javascript - 如何生成带有转义字符的json字符串

javascript - 生成 PHP 数组以模仿 JSON 格式

jquery - 通过 ajax 访问 Wunderlist API http 来列出任务

angularjs - 如何在 AngularJS Controller 中调用 API?