有时,我们会用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
}
就可以正常运行了。