Обновление d3.timer отправляется несколько раз - PullRequest
0 голосов
/ 09 марта 2020

Я изменил ползунок для анализа JSON данных с начальной и конечной датой, чтобы создать визуализацию воспроизведения d3. js.

Мой REPL: https://svelte.dev/repl/69ede1e0f5a74f0c81a1213ce844b9f1 (slider.svelte -> строка 145 function: update ())

В результате происходит округление значения до часа и его отправка. но 6-7 значений округляются до часа, поэтому он отправляется 6-7 раз.

Есть ли способ вернуть функцию, если час уже был отправлен? Я использую Svelte

С уважением, Pepijn

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Я решил свою проблему, добавив переменную с именем «lastDispatch», установив для нее значение startDate.

в своей функции обновления я включил функцию отправки в эту проверку:

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

и перед отправкой перезаписываю переменную снова

lastDispatch = roundMinutes(new Date(target));
0 голосов
/ 09 марта 2020

Вы должны быть в состоянии сохранить уже отправленные часы в массиве или объекте и проверить их перед запуском или обработкой события. Это довольно сложно показать на вашем примере, потому что происходит много других вещей. Если вы сможете упростить это до чистых основ, это будет проще.

...