【问题标题】:d3.timer update dispatches multiple timesd3.timer update 分派多次
【发布时间】:2020-03-09 09:54:57
【问题描述】:

我更改了一个滑块来解析带有开始和结束日期的 JSON 数据,以创建 d3.js 播放可视化。

我的回复: https://svelte.dev/repl/69ede1e0f5a74f0c81a1213ce844b9f1 (slider.svelte -> 第 145 行函数:update())

发生的情况是,一旦一个值四舍五入到一个小时,它就会调度它。但是 6-7 值会舍入到小时,因此会被分派 6-7 次。

如果小时已经分派,有没有办法返回函数? 我正在使用 Svelte

问候, 佩佩恩

【问题讨论】:

    标签: javascript d3.js timer svelte


    【解决方案1】:

    您应该能够将已经分派的小时数存储在一个数组或对象中,并在触发或处理事件之前对其进行检查。很难用你的例子来展示,因为还有很多其他的事情正在发生。如果你能把它简化成纯粹的基础,那就更容易了。

    【讨论】:

      【解决方案2】:

      我通过添加一个名为“lastDispatch”的变量解决了我的问题,我将它设置为 startDate 值。

      在我的更新函数中,我将调度函数包装在这个检查中:

       if(lastDispatch.getHours() < roundMinutes(new Date(target)).getHours()) 
      

      在调度之前我再次覆盖了变量

      lastDispatch = roundMinutes(new Date(target));
      

      【讨论】:

        猜你喜欢
        • 2019-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多