节点js回调问题

时间:2019-01-17 13:20:01

标签: node.js async-await

在NodeJS应用程序中,我正在构建一个API,该API首先从tarrifs集合中获取所有tarrifs名称,然后基于所有这些tarrifs,我想返回分配给我尝试过以下代码的用户的这些关税计数

router.get('/getTarrifDetails', (req,res,next) => {
     result=[];
     tname=[];
     counts=[];

     Tarrif.find().distinct('tarrif_type', (err,docs) => {
       docs.forEach((ele) => {
         tname.push(ele);

         User.countDocuments({tarrif_type:ele}, (uerr,usr) => {
             counts.push(usr);
         });

         result.push(ele);
     });

     result.push(counts);
   });
});

当我console.log(result)时,它仅显示tarrif_type的一个数组,而另一个数组为空

1 个答案:

答案 0 :(得分:1)

您需要了解事件循环的工作原理。我曾经在这里,一次犯了同样的错误。

尝试同步回调,因为您想按顺序进行,就像这样:

WebClient.Builder

我不确定这是否可以100%使用,但是请尝试一下并进行调试。