Nodejs变量值重置

时间:2016-08-08 04:12:56

标签: node.js

对于nodejs还不熟悉我不知道我在这里做错了什么,我试图从这个函数返回一个值。但是,我试图返回outhjk的变量总是被重置。



ConcurrentModificationException




2 个答案:

答案 0 :(得分:0)

你的查询没有在pool.connect中运行,它直接返回var =“”; 如果您使用的是最新版本的node.js,则可以使用新的Promise((resolve,reject)=> {}); 或者如果旧版本使用'async'模块或任何其他模块来处理node.js异步函数

答案 1 :(得分:0)

client.query是异步的。返回语句:return outhjk;将在函数执行之前被调用,因为返回更快......

处理此问题的标准方法是使用回调函数:

function executeQuery( stmt, data, callback ) {
  var outhjk = "";
  pool.connect(function(err, client, done) {
    if(err) {
      console.error('error fetching client from pool', err);
    }
    client.query(stmt, data, function(err, result) {
      //call `done()` to release the client back to the pool
      done();

      if(err) {
        return console.error('error running query', err);
      }
      outhjk = "just work please";
      callback(outhjk);
    });
  });
}

然后用回调来调用函数,你会做类似的事情:

var stmt = //stmt value here;
var data = //data value here;
executeQuery( stmt, data, function (outhjk) {
   //here you can use outhjk
});

阅读此内容以了解callbacks

的要点