gpt4 book ai didi

node.js - forEach 中的 Node 惰性和异步函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:58 24 4
gpt4 key购买 nike

我尝试读取文件(大约 50 000 行)并在 mongodb 中解析后保存每一行。 Mongodb 保存功能是异步的。为了迭代文件,我使用 Node 惰性模块。

我得到的是,只有一部分记录保存在mongodb中(并非所有函数都调用了保存回调)

var stream = fs.createReadStream(inputFile)

new lazy(stream)
.lines
.map(String)
.forEach(function(line){
db[collection].save(parseLine(line), function(err){

if (err){
console.log(err)
} else {
count++;
}
})
}

)

所以没有错误,但是计数 < 实际记录(行)计数;

所以我想知道解决这个问题的最佳方法是什么。

更新:

我通过在forEach中使用syncronios解析函数解决了这个问题,然后当文件完全读取时,我使用async.mapSeries将数据保存到mongodb。

但我仍然想知道是否可以使用 Node 惰性处理异步,我在文档中没有找到它,也许它根本不可能。

最佳答案

我知道它已经过期了几个月,但仅供引用,有人在这里回答了这个问题:

Node and Lazy: How do I know when it's done?

关于node.js - forEach 中的 Node 惰性和异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546833/

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