如何检查函数是否阻塞?
我必须在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); };