文章目录
  1. 1. setTimeout和requestAnimationFrame时间对比

setTimeout和requestAnimationFrame时间对比

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
setTimeout(function() {
console.log('wait 4');
}, 4);
setTimeout(function() {
console.log('wait 3');
}, 3);
setTimeout(function() {
console.log('wait 2');
}, 2);
setTimeout(function() {
console.log('wait 1');
}, 1);
setTimeout(function() {
console.log('wait 0');
}, 0);
requestAnimationFrame(function(){
console.log('animation frame.')
});

以上代码会输出什么? setTimeout的延时为0和1、2、3、4以及requestAnimationFrame的执行时间分别是什么时候? requestAnimationFrame在前,还是setTimeout的0在前? setTimeout是按照大小顺序输出?
在mac chrome版本 55.0.2883.95 (64-bit)验证结果

setTimeout的输出结果顺序是固定的,顺序是 1,0,2,3,4 说明定时器设置为0和1没有区别.
而requestAnimationFrame的执行有时在setTimeout1前,有时在setTimeout1后,并没有固定的先后次序.

文章目录
  1. 1. setTimeout和requestAnimationFrame时间对比