【发布时间】:2019-10-21 16:40:30
【问题描述】:
我正在使用 javascript 定期发送一组请求(每个 5 ms)。
我尝试使用setTimeout 和sleep function,但它们都没有准确的时间。
他们确保时间间隔为>= 5ms 而不是== 5ms。
有什么想法吗?
看来这在javascript中很难实现甚至是不可能的!!
这是我正在使用的代码:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function sendRequest(){
var i;
for (i=1; i<= numberOfRequests; i++){
// send my i^th request here
await sleep(5);
}
}
【问题讨论】:
-
看看
await sleep(5); -
我认为你不能保证 == 5ms 部分。您可以保留时间戳,当 setTimeout 回调运行时,检查最后一个时间戳并确定它所花费的确切时间。不确定这是否有帮助,但这是我所看到的 - 如果需要任何计算,那么可以通过实际时间与预期时间的增量来调整它们。
-
@axelaxel 如果你的意思是this,那么它仍在使用
setTimeout,所以它不能保证延迟
标签: javascript settimeout sleep