首页 > 解决方案 > setTimeout() 不规则执行行为

问题描述

为什么setTimeout即使在所需的延迟时间之后回调也没有执行。

根据执行程序其他代码的时间,执行需要更多时间。

console.time('CalculateExeutionTime');

console.log("Staring....");

setTimeout(() => {
   console.log("Inside setTimeout.");
}, 100);

console.log("Middle...");

let start = 0;
let end = 1000000000;
while(end > start){
  start++
}
console.log("End...");

console.timeEnd('CalculateExeutionTime')

此外,当我将执行回调的时间设置setTimeout为零,它仍然没有执行。

console.time('CalculateExeutionTime');

console.log("Staring....");

setTimeout(() => {
   console.log("Inside setTimeout.");
}, 0);

console.log("Middle...");

let start = 0;
let end = 1000000000;
while(end > start){
  start++
}
console.log("End...");

console.timeEnd('CalculateExeutionTime')

有什么方法可以确保setTimeout在所需时间之后执行。

标签: javascriptperformance

解决方案


推荐阅读