nodejs——定时器

JavaScript09

nodejs——定时器,第1张

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函数是顺序执行。

setTimeout和setInterval的第一个参数有两种选择,一种是用字符串,这个字符串会用eval解释运行;另一种是直接给出一个function,直接调用这个function运行。你用function版本的就行了,function版本的比较快。

a.prototype.b = function() {

var me = this

setTimeout(function() {

me.c()// 你也可以试试直接用this.c()我不确定这里的this就是a对象,好像不是。

}, 1000)

}

settimeout函数名写错了,应该是setTimeout,那个t需要大写。

你把代码改成

$(function(){

    run()

    var interval

    function run(){

    interval = setInterval(chat,"15000")

}

function chat(){

    a()

}

function a(){

    //这里是我的运行代码1

    setTimeout("b()",3000)

}

function b(){

    //这里是我的运行代码2

    setTimeout("c()",3000)

}

function c(){

    //这里是我的运行代码3

    setTimeout("d()",3000)

}

function d(){

    //这里是我的运行代码4

}

就可以正常运行了。