全局变量未使用nodejs进行更新

时间:2018-04-12 07:42:51

标签: javascript node.js callback

我有以下全局变量并尝试使用不同方法进行更新

var companyName;

在此方法中,我获取公司名称,并且能够在终端

中打印companyName
var once = async function(myDB) {
    if(once.done) return;

    companyName = await myCacheData.defaultCompany();
    console.log('Company inside once :' + companyName);
}; 

在这种方法中,我试图获取更新的公司名称,哪一个在once()侧功能中更新。但是当我尝试在终端中打印时,它显示undefined

db.dbConnect(function (err) {
    if (err) {
        process.exit(1)
    }
    else {
        myDB = db.getDBConnection();
        app.myDB = myDB;
        
        once(myDB);

        console.log('Company inside db call :' + companyName);
    }
});

1 个答案:

答案 0 :(得分:1)

尝试改变这个:

once(myDB);

console.log('Company inside db call :' + companyName);

到:

once(myDB).then(v=>console.log('Company inside db call :' + companyName)).catch(v=>console.log('error',v))

因为once(myDB)async并返回promise,您可以将回调放入promise.then(v=>/*your callback*/)