比较相同异步/等待功能的两种构造

时间:2019-05-03 18:23:15

标签: javascript mongoose async-await

我试图确定设置函数本节的这两种方式在功能上是否等效-就forEach()块何时运行而言。

注意:这里的“客户”代表猫鼬模型。

这是函数的第一个构造:

  async processRecords() {
   // other code
    while (recordsProcessed < recordsTotalCount) {
      await Customer.find({
          updatedAt: {
            $gte: this.lastUpdateTime
          }
        })
        .limit(recordsPerRun)
        .skip(recordsProcessed)
        .exec((err, docs) => {
          docs.forEach((doc) => {
            this.next(doc);
          });
        });
     }
  }

这是第二个:

  async processRecords() {
    // other code
    while (recordsProcessed < recordsTotalCount) {
      request.parameters.skip = recordsProcessed;
      request.parameters.limit = recordsPerRun;

      let docs = await request.find(Customer, {
        updatedAt: {
          $gte: this.lastUpdateTime
        }
      });
      docs.forEach(doc => {
        this.next(doc);
      });
    }
  }

具体来说,我很好奇forEach()块是不同运行还是相同运行。对于函数的这两种构造,是否将首先“找到”所有记录,然后在每个记录上运行forEach()

0 个答案:

没有答案