对node的事件循环总是一知半解。代码在单线程的环境下执行,每当代码遇到异步操作,比如IO,setTimeout等,就往队列里push一个事件,下一次事件循环从事件队列中取出一个事件执行其callback,知道事件队列为空,退出。
假如说有一下情况
setTimeout(function( console.log('timeout callback') ) {},3000)
执行以上代码时,node往事件循环中添加一个事件,可是事件循环的时候从队列中去除该事件,还不到3秒钟,这时怎么处理?
在比如一下代码
var fs = require('fs') fs.fs.readFileSync('./test.js', function (error, data) { console.log(data) })
假如上面代码执行完,会在事件队列添加一个事件。下一轮事件循环的时候,取出该事件,假如这时读取文件还没返回,应该怎么处理呢?求解