- Published on
nodejs 死循环写法
- Authors
- Name
- JiGu
- @crypto20x
所有代码都写在index.js中
nodejs 是异步执行的,要理解异步有点困难,简单理解就是每个系统调用的函数调用完就结束了,返回值会传入回调函数。所以跟c语言,go语言等编程思维不同。
天生异步,类似与多线程,每个系统调用都是同时进行(简单理解,底层肯定不是这样的)。
setInterval
使用setInterval函数
function run(){
do something...
}
setInterval(run, 10)
node最小间隔是 每10毫秒执行一次,时间不精确,会被其他任务占用定时计数
函数递归调用
function run(){
do something...
run()
}
run()
函数递归调用自身,会一直执行,但是无法响应其他js的事件
setImmediate 或者 process.nextTick
将任务放入时间循环队列尾端,让任务立刻执行 process.nextTick的优先级比setImmediate 更高,更底层
function run(){
console.log("a")
setImmediate(run)
}
setImmediate(run)
function run(){
console.log("a")
process.nextTick(run)
}
process.nextTick(run)
contract-sol/sniper-eth.ts at dev · JcobCN/contract-sol (github.com) 递归函数 vs setInterval vs setTimeout javascript - SegmentFault 思否