Node.js 如何在node js中将值从一个函数返回到另一个函数
我有一个函数getUserId,因为我有另一个函数从db返回值。结果放置在数组arrUser中。数组在函数中打印,但不在另一个函数中打印。有谁能给我答案吗Node.js 如何在node js中将值从一个函数返回到另一个函数,node.js,Node.js,我有一个函数getUserId,因为我有另一个函数从db返回值。结果放置在数组arrUser中。数组在函数中打印,但不在另一个函数中打印。有谁能给我答案吗 function getUserId() { var arrUser = new Array(); connection.query('SELECT iUserId,sFromEmailAddress FROM tblFromSenderList',function (err, results, fields) {
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
}
这很正常。对数据库的查询是异步的,这意味着您正在运行此代码控制台。logarrUser;//在查询完成之前不打印值。您可以在您的案例中使用回调,它是无用的,您可以在一个函数中编写代码…:
function getUserId() {
getArrayFromDatabase(function(err, result) {
console.log(result);
});
}
function getArrayFromDatabase(callback) {
var arrUser = new Array();
connection.query('SELECT iUserId,sFromEmailAddress FROM tblFromSenderList',function (err, results, fields) {
if (err) {
return callback(err, null);
}
if (results.length > 0) {
for (var i = 0; i< results.length ;i++){
var reader = results[i];
arrUser[reader['sFromEmailAddress']] = reader['iUserId'];
}
console.log(arrUser); // prints value over here
callback(null,arrUser);
}
});
}
var objUser=new getUserId的可能重复项;对象对象对象必须包含数组用户