实现此代码时(直接取自https://github.com/brianc/node-postgres的示例):
var pg = require('pg');
var conString = "tcp://postgres:1234@localhost/postgres";
pg.connect(conString, function(err, client) {
client.query("SELECT NOW() as when", function(err, result) {
console.log("Row count: %d",result.rows.length); // 1
console.log("Current year: %d", result.rows[0].when.getFullYear());
//Code halts here
});
});
在最后一个之后console.log
,节点挂起。我认为这是因为异步性质,我怀疑在这一点上,应该调用一个回调函数。
我有两个问题:
- 我的想法正确吗?
- 如果我的想法是正确的,那么机制是如何工作的。我知道 NodeJS 正在使用一个事件循环,但是是什么让这个事件循环在这一点上停止了?