如何检查函数是否是非阻塞的?

时间:2014-05-23 15:18:36

标签: javascript node.js

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

因此,游戏服务器不具备任何阻止功能。它不能延迟计时器等。我的问题是,如何检查函数是否是非阻塞的?

2 个答案:

答案 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);
};