我有一个服务器上运行的node.js代码,并想知道它是否阻塞或不。这是一种类似于此:下面的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代码是否结束阻塞?
你问是否doSomeHeavyWork块?我们如何在没有看到该函数的代码的情况下回答? –