为了账号安全,请及时绑定邮箱和手机立即绑定

d3.js 中计时器运行时是否可以改变时间间隔?

d3.js 中计时器运行时是否可以改变时间间隔?

慕哥6287543 2023-07-06 17:47:31
我希望能够调整回调之间的时间间隔。我按以下方式使用 d3 的间隔:let timeInterval = 500; d3.interval(callback, timeInterval);现在,在执行过程中的某个时刻,我希望能够调整 timeInterval 的值(通过用户输入)并将其反映在后续回调执行的速度中。这可能吗?如果可能的话,如何实现?
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

更改间隔行为(包括其计时)的最简单方法是调用.restart()其方法。由于 ad3.interval()只是一个d3.timer()定期执行的包装,它也具有上述.restart()方法。

计时器重新启动回调[,延迟[,时间]])<>

使用指定的回调和可选的延迟和时间重新启动计时器。这相当于停止此计时器并使用指定参数创建一个新计时器,尽管此计时器保留了原始调用优先级。

这可以按照以下方式完成:

const callback = console.log;

const interval = d3.interval(callback, 500);  // initial timing 500ms

interval.restart(callback, 1000);             // updated timing 1000ms

<script src="https://d3js.org/d3.v6.js"></script>


查看完整回答
反对 回复 2023-07-06
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

d3.interval()显然返回创建的计时器对象。

您可以停止旧计时器并启动新计时器:

var intervalTimer;

// ... other code ...

intervalTimer = d3.interval(callback, 500);

// ... other code ...

intervalTimer.stop();

intervalTimer = d3.interval(callback, 100);

// ...


查看完整回答
反对 回复 2023-07-06
  • 2 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信