我有一個服務器上運行的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塊?我們如何在沒有看到該函數的代碼的情況下回答? –