最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在节点JS阵列得不到内部功能设定值

IT培训 admin 7浏览 0评论

在节点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);
    });
 }
发布评论

评论列表 (0)

  1. 暂无评论