我有个类似的手术:
const results = Promise.all([
myColl1.find(query1).sort(sort).limit(limit).toArray(),
myColl2.find(query2).sort(sort).limit(limit).toArray(),
]); 然而,结果似乎完全出乎意料。在研究了可能发生的事情之后,文档声明:
警告:由于异步调用直接修改游标,因此在上执行异步调用--同时执行单个游标--也会导致未定义的行为。在运行另一个异步操作之前,始终要等待前面的异步操作完成。
“单个游标”部分似乎意味着可以用两个单独的游标来完成这个任务?实际上,我并不太确定技术细节,但是,myColl1 != myColl2这一事实难道不意味着它们是单独的游标吗?实际上,我一直在考虑加入这些集合,所以如果它们是相同的,是否可以使用单独的游标?任何帮助都是非常感谢的。
发布于 2022-06-04 23:00:23
你用等待吗?我对你最初发布的内容做了一些修改:
const [res1, res2] = await Promise.all([
await myColl1.find(query1).sort(sort).limit(limit).toArray(),
await myColl2.find(query2).sort(sort).limit(limit).toArray()
]);
我希望这对✌有帮助
https://stackoverflow.com/questions/72497061
复制相似问题