node菜鸡求大神教教我如何改这段代码!!!!蟹蟹 蟹蟹
发布于 7 年前 作者 Daxong 4171 次预览 最后一次回复是 7 年前 来自 问答
var data = [] for (var index = 0 ; index < catalogss.length ; index ++) { for (let i = 0 ; i < wordsArray.length ; i++ ){ Catalog.aggregate([ {$match: {“catalog”: catalogss[index],“books.vocabulary”: { $in:[wordsArray[i]] }}}, {"$project": { _id:"$catalog", size:{"$size":"$books.vocabulary"} }} ]).exec((err,docs) => { if (err){ console.err(err) } console.log(docs) data.push(docs[0]) }) } } 这段代码中,执行query的部分是异步的,我还不会用,希望可以得到帮助~~
8 回复
代码这么难看,不帮 先去学一下怎么用markdown吧
@zengming00 我更新了图片
用Promise.all
来自酷炫的 CNodeMD
类似这样子的,试试呢
From Noder
@jiangli373 这样不并行,查询会慢
来自酷炫的 CNodeMD
把你的查询变成一个方法 然后用promise.all 就行了 这个的话就是并行执行你的查询 而且可以去到每一个查询的结果
谢谢各位的帮助,我解决了
来自酷炫的 CNodeMD