【发布时间】:2017-02-07 21:48:20
【问题描述】:
我正在用 React Native 构建节拍器。播放一次点击后,我为下一次点击设置了setTimeout。然而,时机很糟糕。
我做了以下快速测试:
let time = (new Date()).getTime() + 50;
setTimeout(() => {
console.log(time - (new Date()).getTime());
}, 50)
理想情况下,我应该在控制台中得到 0。在 Chrome 开发工具中在 React Native 之外运行它时,我得到 -1,有时是 -2(毫秒)。这是可以接受的结果。
在 macOS 上使用模拟器在 React Native 中运行它,我得到介于 0 和 -100 之间的值。这显然是不可接受的。
有人知道这是因为setTimeout 的不准确还是(new Date()).getTime() 的不准确?我可以解决这个问题吗?
【问题讨论】:
标签: javascript reactjs react-native settimeout