Javascript回调函数错误

时间:2014-09-01 04:14:20

标签: javascript express callback

出于某种原因,我在下面写的代码(我正在制作的POST路线)并没有完全按照我的想法工作。

app.post("/", function (req, res, error) {
  var message = "";
  tableSvc.createTable("tableName", function (error, result,response){
      if (error) 
        message += "There was an error in creating this table";
      else 
        message += "Table created succesfully";

  }); 
  console.log(message);     
});

上面的代码只打印出一个空字符串,而不是打印"There was an error...""Table created..." 我知道正在执行回调函数,因为如果我将console.log(message)置于回调函数内,则上述两个字符串中的任何一个都会打印到控制台。
我是Javascript和call-functions的新手,为什么我的代码没有按照我的意图执行呢?

2 个答案:

答案 0 :(得分:0)

删除了我的猜测 - 错过了关于正在执行的回调的观点 - 这可能是其他回复提供的异步问题。

答案 1 :(得分:0)

我认为变量消息的范围是这里的问题。我没有试过这个但可能有用。

 app.post("/", function (req, res, error) {
    var obj = this;
    obj.message = '';
      tableSvc.createTable("tableName", function (error, result,response){
          if (error) 
            obj.message += "There was an error in creating this table";
          else 
            obj.message += "Table created succesfully";

      }); 

      while(obj.message.length===0){
            ;//Block the next execution till the operation above is complete.
      }


      console.log(obj.message);     
    });