setTimeout用法&任务队列&函数节流原理

1、setTimeout与setInterval运行机制

setTimeout和setInterval中引入的函数将被移出本次执行,直到下一轮EventLoop时检查是否到了指定时间,如果到了,执行对应代码,如果还没到,继续下一轮EventLoop,直到到达指定时间后,才开始执行setTimeout /setInterval中的代码;这就意味着setTimeout/serInterval中的代码一定要等到单线程中其他代码执行完毕才能执行。要想实现某函数在setTimeout代码后执行,可将该函数作为回调函数置于setTimeout代码之后。

2、简析函数节流机制

函数节流,即当一个函数在短时间内连续执行多次时,忽略前面执行结果,直接计算展示最后一次的结果,这种方法叫做函数节流;

实现机理:预先设置一个定时器,在执行函数的时候先判断该时钟是否存在,如果存在,则clearTimeout将该时钟清除,即该次函数执行终止,如果不存在(即该函数没有在任务队列,也没有在执行),则生成一个新时钟,保证函数能执行,但如果在该时钟内又一次执行函数,则进入上述循环,清除时钟,进入新建的时钟,这就实现了函数节流。

你可能感兴趣的:(setTimeout用法&任务队列&函数节流原理)