这行代码不理解

这行代码不理解

代码

    // 查询所有数据
    const cursor = userCollection.find(); // 返回一个指针
    console.log("cursor", Object.prototype.toString.call(cursor)); // cursor [object Object]

    await cursor.forEach((doc) => console.log(doc));

这种 await + forEach 写法我还从来没有见过。麻烦老师详细解释一下,有些蒙
cursor 是一个对象(非数组),cursor对象上是自己写了一个方法叫 forEach 吗?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好 


这段代码有点 mongodb 自创的意思,平时一般不会写这样的代码,你的理解是正确的它整体是一个对象,上面有一个 foreach,然后整个 forEach 应该是返回了异步,所以可以被 await。

我建议你使用它文档中另外一种方式对多个异步的对象进行循环,更好用,更通用。

const cursor = collection.find({});
console.log("async");
for await (const doc of cursor) {
    console.log(doc);
}

这种方式很常见,很好用也好理解,请记住。

  • 慕粉3946981 提问者 #1

    多谢,我理解了。

    2022-11-09 17:24:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师