Я пытаюсь setState
в данный интервал времени (100 мс). Как на практике, так и в ходе исследований я обнаружил, что setInterval
является неточным и со временем будет всплывать. Мне нужно, чтобы он был точным, потому что я хочу, чтобы данные (из массива) в моем приложении синхронизировались с видео.
Вот что у меня сейчас есть:
data = this.processCSV(text);
let idx = 0
this.intOne = setInterval(() => {
this.setState(previousState => (
{
data1: parseFloat(data[idx][2]),
data2: parseFloat(data[idx][1]),
data3: parseFloat(data[idx][3])
}
));
idx = idx + 1;
}, 100);
В своем исследовании я нашел несколько решений, использующих Date
для точного отслеживания времени и учета дрейфа.
Ожидаемые результаты: setState
вызывается 10 раз в секунду в течение продолжительного времени
Текущие результаты: setState
вызывается ~ 9 раз в секунду и продолжает уплывать от ожидаемого времени