我在多個 MongoDB “.findOne” 函式上對不同的集合使用“await”,一次一個。我想讓它們一起異步運行,并以某種方式知道它們何時都可以使用。
而不是這樣做:
async function myFunction() {
const collection_1 = await firstCollection.findOne({})
const collection_2 = await secondCollection.findOne({})
const collection_3 = await thirdCollection.findOne({})
console.log(collection_1, collection_2, collection_3)
}
我可以做這樣的事情嗎?
async function myFunction() {
[collection_1, collection_2, collection_3]
await new Promise(() => {
collection_1 = firstCollection.findOne({})
collection_2 = secondCollection.findOne({})
collection_3 = thirdCollection.findOne({})
})
console.log(collection_1, collection_2, collection_3)
}
我不知道如何正確使用 Promises 來做到這一點。
uj5u.com熱心網友回復:
要跟蹤多個基于 Promise 的異步操作的并行執行,請使用Promise.all()
:
async function myFunction() {
const [collection_1, collection_2, collection_3] = await Promise.all([
firstCollection.findOne({}),
secondCollection.findOne({}),
thirdCollection.findOne({})
]);
console.log(collection_1, collection_2, collection_3)
}
Promise.all()
如果您通過的任何承諾被拒絕,將拒絕。如果您想要所有結果,無論是否可能拒絕,您都可以使用Promise.allSettled()
。請參閱檔案以了解其決議值的確切作業原理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/489690.html
上一篇:MongoDB找到最大值
下一篇:更新集合欄位和陣列