如何在节点中捕获从一个函数到另一个函数的返回值

问题描述

我有两个函数,在第一个函数中我创建了一个 mongodb 实例并返回它。在第二个函数中,我在变量中捕获该返回值,但是当我打印它时,它显示未定义。 同样在另一个模块中,当我捕获 getDBInstance() 的返回值时,它会显示 promise{undefined}。如何解决此问题。

let instance,totalInstance = 0 ;
function connectToDatabase() {
try {
    MongoClient.connect(DBURL,{ useNewUrlParser: true },{ useUnifiedTopology: true },(err,client) => {
            console.log("trying to connect to DB");

            let instance = client.db(dbnAME);
            console.log("Connected to " + dbnAME + " database");
            return instance;
        });
}
catch (err) {
    console.log("Error occured while connecting to db " + err);
}
}

async function getDBInstance() {
   console.log("total instance till Now =" + totalInstance);
   try {
       if (totalInstance !== 0) {
           console.log("returning old db instance");
           return instance;
       }
       else {
           totalInstance++;
           instance = await connectToDatabase();
           console.log(instance); //undefined
           return instance; //it return promise{undefined}
       }
   }
   catch (err) {
       console.log("Error while checking instance and making 
           instance " + err);
   }

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)