node.js(谷歌日历api,mongojs)中循环的顺序错误
Wrong order in for-loop in node.js (google calendar api, mongojs)
我在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);
}
}
因此,当我检查控制台时,它首先按顺序打印所有"firsts",然后在每次迭代中都有"second",并且只有列表中的最后一个事件。我有点困惑,正如我所期望的那样。例如(假设事件1和事件2尚未添加到mongo数据库):
first
event1
second
event1
first
event2
second
event2
而不是:
first
event1
first
event2
second
event2
second
event2
我在这里做错了什么?
问题的第一个注释是绝对正确的,db.events.find()操作是异步的(它有一个回调),for循环是同步的,并且在异步数据库查询操作完成之前执行。
相关文章:
- RegEx导致无限循环/错误-请求的实体太大
- 循环错误的Javascript
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- Jquery 循环错误
- wordpress循环中的循环错误
- 对无限循环错误进行故障排除
- 敲除循环错误 - 需要有关查找原因的建议
- Javascript 三元,带循环错误;“未捕获的语法错误:意外的令牌”
- 如何解决简化的JSON.stringify实现中的每个循环错误
- JQuery 脚本循环错误
- 无限循环错误
- 2D数组比较-嵌套循环错误
- JSON访问循环错误
- AngularJS承诺循环错误
- For循环错误,需要帮助解决
- Javascript无限循环错误在我的数组
- 样式表文件中的JS for循环错误
- For循环错误,For循环没有正确填充数组
- 在循环错误中将行添加到表中
- javascript循环错误