我有一个函数getUserId(),我有另一个从db返回值的函数。结果放在数组arrUser中。数组在函数中打印,但不在另一个函数中打印。任何人都可以给我解决方案
function getUserId() {
var arrUser = new Array();
connection.query('SELECT iUserId,sFromEmailAddress FROM tblFromSenderList',function (err, results, fields) {
if (err) {
throw err;
}
if (results.length > 0) {
for (var i = 0; i< results.length ;i++){
var reader = results[i];
// console.log(reader['sFromEmailAddress']+" == " + reader['iUserId']); //ADD string - 'ID: 1'
arrUser[reader['sFromEmailAddress']] = reader['iUserId'];
}
console.log(arrUser); // prints value over here
return arrUser;
}
});
console.log(arrUser); // does not print value
}
答案 0 :(得分:-1)
这是正常的。对数据库的查询是异步的,这意味着您在查询完成之前运行此代码Device Mode
。您可以使用回调(在您的情况下,它没用,您可以在一个函数中编写代码......):
console.log(arrUser); // does not print value