我必须在node.js中编写游戏服务器。它将有很多循环,函数等。我将编写我赢得的函数abit,但主要是我将使用其他函数。
因此,游戏服务器不具备任何阻止功能。它不能延迟计时器等。我的问题是,如何检查函数是否是非阻塞的?
答案 0 :(得分:1)
在调用方法之前记录,登录方法回调,并在方法之后记录。检查日志的显示顺序。
答案 1 :(得分:1)
该功能如何返回'它的计算值是多少?如果它使用return
语句,则会阻止:
var doBlockingStuff = function(a, c) {
b = a * c;
return b;
};
如果它使用回调来推进计算值,那么它就是非阻塞的:
var doNonBlockingStuff = function(a, c, callback) {
b = a * c;
callback(null, b);
};
您可能会在非阻塞代码中看到return
语句,只是为了暂停执行。如果函数计算的值传递给回调函数,它们仍然是非阻塞的:
var doNonBlockingStuff = function(a, c, callback) {
b = a * c;
if (b < 0) {
var err = 'bad things happened';
return callback(err);
}
return callback(err, b);
};