我正在尝试在给定的时间间隔(100毫秒)内setState
。我在实践和研究中都发现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次,并继续偏离预期时间