首页 > 技术文章 > setTimeout setInterval

sheting 2016-06-20 17:52 原文

1、setTimeout:在指定的毫秒数后,将定时任务处理的函数添加到执行队列的队尾。
2、setInterval:按照指定的周期(以毫秒数计时),将定时任务处理函数添加到执行队列的队尾。
setTimeout与setInterval且都是异步的, 调用setTimeout时候,会有一个延时事件排入队列;
Javascript最基础的异步函数是setTimeout与setInterval,setTimeout会在一定的时间后执行相应的函数,它接受一个回调函数和一个毫秒时间,如下:

console.log( "a" );

setTimeout(function() {

console.log( "c" )

}, 500 );

setTimeout(function() {

console.log( "d" )

}, 500 );

setTimeout(function() {

console.log( "e" )

}, 500 );

 
console.log( "b" );
 
控制台先输出“a”、“b”,大约500毫秒后,再看到“c”、“d”、“e”。你可能 听过事件循环这个词,它是用于描述队列的工作方式的。当异步函数执行时,回调函数就会被压入这个队列里面,javascript引擎直到异步函数执行完, 才会开始出来这个事件循环,这意味着javascript也并不是多线程的,事件循环是一个先进先出的(FIFO)队列,这说明回调是按照他们被加入队列 的顺序执行的(在相同的情况下。),但是如果延迟时间不一样的话,那么就不会了,就像上面的列子把定时毫秒数改大点输出来的就不一样了。

推荐阅读