我试图确定设置函数本节的这两种方式在功能上是否等效-就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()
?