Node.Js在异步函数中从模块返回值

时间:2012-10-04 07:42:52

标签: function node.js asynchronous

我正在向模块发送一个id,检查是否已发送消息hjas。在没有发送之后我发送消息:

 var l = require('./control.js')
 sonuc = l.check(id);

我的模块是

 exports.check = function(id, callback){
        try{
          client.query("SELECT req FROM messages where req = 0 and id = "+id,
          function (err, results, fields) {
            if (results.length > 0){
                callback(false);
                }else{
                callback(true);
                }
         });
         callback();
  }catch(err){
    console.log(err);
  }  
  } 

但它失败并返回未定义的变量。

1 个答案:

答案 0 :(得分:2)

来自异步函数的{p> return并不意味着什么;使用回调的全部意义在于您可以在以后获取该值:

var l = require('./control.js')
l.check(id, function(sonuc) {
  // Here the value of sonuc is set.
});

您可能对this screencast感兴趣,更详细地介绍了该主题。