我仍然是JS的初学者,我试图将x的值传递给y尝试y = x但是没有工作y返回为undefined,x作为值数组返回
exports.Get_info = function (name) {
var y;
db.query(query, params, function (err, results) {
if (err) {
console.log('Error');
throw err;
}
var x = results.map(function (result) {
data1 = result['name'];
return data1;
});
console.log("x = " + x);
y = x;
return x;
});
console.log("y = " + y)
return y;
}
答案 0 :(得分:1)
在return y
完成之前执行db.query
会发生什么。这就是y
返回时未定义的原因。您应该使用回调将代码重写为异步。
exports.getInfo = function (name, callback) {
db.query(query, params, function (err, results) {
if (err){
console.log('Error',err);
return callback(err);
}
var x = results.map(function (result) {
data1 = result['name'];
});
return callback(null, x);
});
};
在旁注中,您应该使用camelCase进行变量和函数命名。