0

我正在为一个项目使用 MEAN(Mongo Express Angulars NodeJs)。问题是我必须为从查询对象接收到的数据添加一个额外的属性。并用完全旧的数据数组制作新的数据数组,但有一个额外的属性。我知道如何添加属性并将它们传递给使用瀑布模型的回调,因为我正在使用多个回调函数和 for 循环我无法获得预期的结果。

代码:

var fetchRevenue = function(restaurantArray, type, startDate, endDate, fn) {
_.forEach(restaurantArray, function(rest) {
    fetchDateWiseReport(new Date('07/10/2015'), new Date('07/16/2015'), rest._id, type, function(orders) {
          var newOrders = [];
      async.waterfall([
        function(callback) {
          if(orders && orders.length > 0){
            async.forEach(orders, function(order) {
              getSellingPriceOfItems(order.orders, function(sp) {
              order.sp = sp;
              newOrders.push(order);
              if (newOrders.length === orders.length)
                callback(null, newOrders);
            });
              }); 
             } else {
            newOrders.push([]);
          }        
        },
        function(newOrders, callback) {
            var restArr = []
          //get sum of all orders of each restaurant and add into restArr
          callback(null, restArr);

        },
        function(restArr, callback) {
          callback(null, newOrders);
        }
      ], function(err, result) {
        fn(result);
      });
    });
  });
};

我的功能在哪里:

  1. fetchDateWiseReport = 获取给定日期的餐厅记录并在回调中发送结果
  2. getSellingPriceOfItems = 查询商品模型查找每个商品的价格并返回给定数组的售价并在回调中发送结果。我的完整代码包括所有功能在这里。现在我希望订单应该等于带有附加属性“sp”的新订单。但我无法得到这个。你能建议我做点什么吗?
4

1 回答 1

0

使用 Express 方式处理回调问题

在你的路线中

app.get('you/route',fetchDateWiseReport(), second(),finalReturningREsult())

您的第一个函数将在 req.body.firstResult 中执行第一个异步循环函数 assiggn reult 并传递给第二个函数。等等

于 2015-07-16T09:49:08.843 回答