gpt4 book ai didi

javascript - 如何确保 Node.js 中 setTimeout() 的最小延迟?

转载 作者:搜寻专家 更新时间:2023-11-01 00:35:48 25 4
gpt4 key购买 nike

问题很简单。

例如我需要在至少 50 毫秒(而不是 49.8 毫秒)后执行一些代码。

// min-timeout.spec.js
const util = require('util');
const {performance} = require('perf_hooks');

const wait = util.promisify(setTimeout);

it.only('setTimeout() minimum delay', async() => {
for (let i = 0; i < 10; i++) {
const start = performance.now();
await wait(50);
const time = performance.now() - start;
console.log('time:', time);
}
});

输出:

time: 51.01539999991655
time: 50.70590000227094
time: 50.79270000010729
time: 50.22399900108576
time: 49.343199998140335
time: 50.81929999962449
time: 49.999699000269175
time: 49.83229999989271
time: 50.78200000151992
time: 50.010999999940395

为什么有时执行时间少于 50 毫秒?它是系统依赖的吗?如何在 Node.js 中确保 setTimeout() 的最小延迟?

系统信息:

Microsoft Windows [Version 10.0.17134.285]
node v8.11.2

最佳答案

我认为这是由于 performance.now() 不准确造成的。

关于javascript - 如何确保 Node.js 中 setTimeout() 的最小延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52576374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com