新手问一个菜鸟问题,关于Node.js的程序的执行过程的问题
var i=0; db.query(‘SELECT * from some_table’, function(res) { res.output(); }); db.query(‘SELECT name from some_table’, function(res) { res.output(); }); console.log(‘完成!’); 这段代码的执行过程,我是这样理解的:
一开始整个程序进入事件循环,运行到查询数据库操作时,会把第一个查询数据库操作放到worker threads中,继续执行代码,会把第一个查询数据库操作放到worker threads中,然后打印“完成”,程序运行结束。然后workerThreads开始执行两个数据库查询操作,两个操作并行执行。同时事件循环一直在运行,检测事件队列中的事件和事件循环中的回调函数。数据库查询操作执行完毕后发送事件到事件队列,事件循环检测到事件队列,然后调用该事件的回调函数。事件队列中的两个事件都处理完了,就没有事件了,那么事件循环终止,然后退出程序。整个过程结束。
不知道理解的对不对,我被这个事件循环,和事件队列搞迷糊了,就是不能理解这些是怎么个回事,还请大家给予指导,谢谢。
2 回复
你的理解是对的
楼主,菜鸟表示学习了,