在节点JS阵列得不到内部功能设定值
我试图函数内设置阵列的值,但该阵列显示功能的空白之外。
router.post('/',function(req,res){
var resultData= Array();
getBirthDates(function(result){
if(result.length>0)
resultData = result;
console.log('inside -- > ');
console.log(resultData);
});
console.log('outside -- > ');
console.log(resultData);
});
function getBirthDates(callback){
var sqlBirthDays = "SELECT displayName, DATE_FORMAT((userDob),'%m-%d') AS DOB, DATE_FORMAT(NOW(),'%m-%d') TD FROM mx_admin_user HAVING DOB = TD";
con.query(sqlBirthDays, function (err, result, fields) {
if (err) throw err;
return callback(result);
});
}
回答如下:
这是因为查询需要一定的时间来执行,并声明外块立即调用
更新后的代码:
router.post('/',function(req,res){
var resultData= Array();
getBirthDates(function(result){
if(result.length>0)
resultData = result;
console.log('inside -- > ');
console.log(resultData);
});
// Add timer function
setTimeout(function() {
console.log('outside -- > ');
console.log(resultData);
}, 3000)
});
function getBirthDates(callback){
var sqlBirthDays = "SELECT displayName, DATE_FORMAT((userDob),'%m-%d') AS DOB, DATE_FORMAT(NOW(),'%m-%d') TD FROM mx_admin_user HAVING DOB = TD";
con.query(sqlBirthDays, function (err, result, fields) {
if (err) throw err;
return callback(result);
});
}
在节点JS阵列得不到内部功能设定值
我试图函数内设置阵列的值,但该阵列显示功能的空白之外。
router.post('/',function(req,res){
var resultData= Array();
getBirthDates(function(result){
if(result.length>0)
resultData = result;
console.log('inside -- > ');
console.log(resultData);
});
console.log('outside -- > ');
console.log(resultData);
});
function getBirthDates(callback){
var sqlBirthDays = "SELECT displayName, DATE_FORMAT((userDob),'%m-%d') AS DOB, DATE_FORMAT(NOW(),'%m-%d') TD FROM mx_admin_user HAVING DOB = TD";
con.query(sqlBirthDays, function (err, result, fields) {
if (err) throw err;
return callback(result);
});
}
回答如下:
这是因为查询需要一定的时间来执行,并声明外块立即调用
更新后的代码:
router.post('/',function(req,res){
var resultData= Array();
getBirthDates(function(result){
if(result.length>0)
resultData = result;
console.log('inside -- > ');
console.log(resultData);
});
// Add timer function
setTimeout(function() {
console.log('outside -- > ');
console.log(resultData);
}, 3000)
});
function getBirthDates(callback){
var sqlBirthDays = "SELECT displayName, DATE_FORMAT((userDob),'%m-%d') AS DOB, DATE_FORMAT(NOW(),'%m-%d') TD FROM mx_admin_user HAVING DOB = TD";
con.query(sqlBirthDays, function (err, result, fields) {
if (err) throw err;
return callback(result);
});
}