CNode

新手问一个菜鸟问题,关于Node.js的程序的执行过程的问题

问答
Jjiaylsir发布于11 年前最后回复11 年前2 回复4004 浏览0 收藏

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)

A
alsotang#1·11 年前

你的理解是对的

G
Guojunzhou-git#2·11 年前

楼主,菜鸟表示学习了,

参与回复
登录后即可参与回复。登录