for (var i=0 i<items.length i++) {
var item = items[i]
setTimeout(function(){
item.style.backgroundColor = 'red'
},5)
}
js中两种定时器的设置及清除
循环执行:
var timeid = window.setInterval(“方法名或方法”,“延时”)
window.clearInterval(timeid)
<script type="text/javascript">
$(document).ready(function(){ //循环执行,每隔1秒钟执行一次 1000 var
t1=window.setInterval(refreshCount, 1000)
function refreshCount() {
console.log("ready")
}
//去掉定时器的方法
window.clearInterval(t1)
})
</script>
2.定时执行:当方法执行完成定时器停止(但是定时器还在,只不过没用了)
var tmid = window.setTimeout(“方法名或方法”, “延时”)
window.clearTimeout(tmid)
<script type="text/javascript">
$(document).ready(function(){ //定时执行,5秒后执行
var t1=window.setTimeout(refreshCount, 1000 * 5) function refreshCount() {
console.log("ready")
} //去掉定时器的方法 window.clearTimeout(t1)
})
</script>
JavaScript中可以实现定时器功能的有两个函数——setTimeout和setInterval,二者的不同是setTimeout只执行一次,而setInterval是以指定的时间间隔重复执行。setTimeout可以使用clearTimeout取消,setInterval可以使用clearInterval取消。
有时,我们会用setTimeout(callback,0)将任务推迟一段很短的时间,但是其实通过process.nextTick(callback)来实现会更好,因为Node中的事件循环在一个处理事件队列的循环里运行,每循环一次称为一个“tick”。使用process.nextTick(callback)回调函数会在事件队列内所有事件处理完毕后,会在下次事件循环之前被调用,即进入下个event loop前执行;而setTimeout(callback,0)把回调延迟到后面的某个event loop执行,具体由设置的延时时间和event loop的执行时间决定。
这样可以保证my_async_function函数是顺序执行。