从另一个js文件调用异步函数

时间:2019-03-01 08:27:49

标签: javascript node.js mongodb asynchronous mongoose

我有一个函数可以获取mongodb集合中的所有记录。

var getVouchers= function(){

  Customer.find({}, function(err, result) {
    if (err) throw err;
    return result;
  });     
};

我这样打电话,当我设置断点时,我可以看到结果。问题是,当我调用此函数时,它不会等待。

因为它是nodejs,所以我将函数导出如下

module.exports.getVouchers =getVouchers;

我这样打电话

var router = require('./api');

adminPanel.get('/', (req,res)=>
{
  router.getVouchers().then((result)=>{
    console.log(result);
  });        
});

我遇到了以下异常

  

(节点:26972)[DEP0016]弃用警告:不建议使用“ GLOBAL”   “全球”

如果我不使用GLOBAL关键字

如何解决这个问题?

编辑:

我现在更新了我的代码

var  getVouchers = function() {
    // `delay` returns a promise
    return new Promise(function(resolve, reject) {

    Customer.find({}, function(err, result) {
        if (err) throw err;

         return result;

      });     
    });
  }

我将函数称为

  (async function(){
        let vouchers=await router.getVouchers();
        console.log(vouchers);
      })();

第一个函数具有结果,但是没有返回值,这意味着它永远不会出现在console.log部分。

编辑2:

我没有做出返回结果,就像@ ajuni880所说的那样,我做出了决心(结果);并且现在可以使用。

0 个答案:

没有答案