gpt4 book ai didi

javascript - Node.js 中的 for 循环顺序错误(谷歌日历 api、mongojs)

转载 作者:行者123 更新时间:2023-12-02 15:27:13 25 4
gpt4 key购买 nike

我在 node.js 中遇到 for 循环问题。我列出了谷歌日历中的所有事件并检查它们是否已添加到我的 mongo 数据库中。 for循环遍历每个事件(这里我还没有将其插入数据库,只是测试):

for (var i = 0; i < events.length; i++) {
var event = events[i];
console.log("first");
console.log(event);
db.events.find({googId = event.id}, function(err, doc) {
if (doc.length == 0) {
console.log("second");
console.log(event);
}
}

因此,当我检查控制台时,它首先按顺序打印所有“第一个”,然后在每次迭代中打印“第二个”和列表中的最后一个事件。我有点困惑,正如我预期的那样(假设event1和event2尚未添加到mongo数据库中):

first
event1
second
event1
first
event2
second
event2

而不是:

first
event1
first
event2
second
event2
second
event2

我在这里做错了什么?

最佳答案

您的问题的第一条评论是绝对正确的,db.events.find() 操作是异步的(它有一个回调),您的 for 循环是同步的,并在异步数据库查询操作完成之前执行。

关于javascript - Node.js 中的 for 循环顺序错误(谷歌日历 api、mongojs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33595448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com