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

答案 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
的要点