定时器 和 延时器 同步与异步

53 阅读1分钟

定时器

创建定时器

setInterval(code,millisec)

code: 要调用的代码块或者函数

millisec: 是周期性执行代码块或函数的间隔,以毫秒计

//例如: 创建定时器timer, 每隔1秒调用一次函数function
var timer = setInterval( function(){},1000);

关闭定时器

setInterval()方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

由setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

clearInterval()方法可以关闭定时器和延时器

//例如: 关闭上面创建的定时器timer
clearInterval(timer); 

定时器的三种写法

  • setInterval()可以有三种不同的写法

//写法一:  (直接使用字符串,不建议)
setInterval(“alert(‘hello’)”, 1000);   

//写法二: (直接传入函数名即可)
function func(){
     alert(“hello”);
}
setInterval(func, 1000); 	

//写法三: (推荐写法, 以后最常用)
setInterval(function(){   	 
      alert(“hello”);
}, 1000);

延时器

延时器setTimeout

setTimeout(): 指定的时间过后执行一次代码.

setTimeout和setInterval的用法类似

创建延时器

var timer = setTimeout(function(){ }, 1000);

取消延时器

clearTimeout(timer);

同步与异步

//同步:按照顺序一步步的执行             1 2 3 4 5 ...
//js 从上往下执行,就是同步,按照顺序执行
console.log(11111);
console.log(22222);
console.log(33333);

//异步:不按照顺序执行,与同步是相反的    1 3 5 2 4 ...
console.log(11111);
//被推入执行队列中,等待被执行
setTimeout(function(){
    console.log(222222);
},0)
console.log(33333);
//异步代码会等待所有的同步代码执行完之后再执行