我在服务器上运行 node.js 代码,想知道它是否阻塞。这有点类似于:
function addUserIfNoneExists(name, callback) {
userAccounts.findOne({name:name}, function(err, obj) {
if (obj) {
callback('user exists');
} else {
// Add the user 'name' to DB and run the callback when done.
// This is non-blocking to here.
user = addUser(name, callback)
// Do something heavy, doesn't matter when this completes.
// Is this part blocking?
doSomeHeavyWork(user);
}
});
};
一旦addUser
完成,doSomeHeavyWork
函数就会运行并最终将某些内容放回数据库中。这个函数需要多长时间并不重要,但它不应该阻塞服务器上的其他事件。
这样,是否可以测试 node.js 代码是否最终阻塞?