如何检查函数是否阻塞?

我必须在node.js中编写游戏服务器 它会有很多的循环,function等。我会写我赢得function提升,但主要是我会使用其他function。

所以,游戏服务器不能有任何阻塞function。 它不能延迟计时器等我的问题是,如何检查function是否无阻塞?

在调用方法之前logging日志,login方法callback,然后logging方法。 检查您的日志出现的顺序。

函数如何返回它的计算值? 如果它使用return语句,则阻塞:

 var doBlockingStuff = function(a, c) { b = a * c; return b; }; 

如果它使用callback向前移动计算值,则它是非阻塞的:

 var doNonBlockingStuff = function(a, c, callback) { b = a * c; callback(null, b); }; 

你可能会看到非阻塞代码中的return语句,只是暂停执行。 如果函数计算的值传递给callback函数,它们仍然是非阻塞的:

 var doNonBlockingStuff = function(a, c, callback) { b = a * c; if (b < 0) { var err = 'bad things happened'; return callback(err); } return callback(err, b); };