gpt4 book ai didi

Node.js + mongodb : wait for query to complete

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:18 26 4
gpt4 key购买 nike

我在node.js中有一个简单的代码

async function dbQuery() {
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";
const db = await MongoClient.connect(url);
const dbo = db.db("mydb");
const result = await dbo.collection("tblData").find({}).toArray()
return result;
}

async function doIt() {
try {
const res = await dbQuery();
console.log("Records: " + res.length);
} catch (error) {
console.log(error);
}
}
//
console.log("Starting...")
doIt()
console.log("Done!")

输出是:

Starting...
Done!
Records: 24

如何强制代码等待查询完成?输出如下:

Starting...
Records: 24
Done!

最佳答案

另一个答案说使用 Promises,但我认为没有必要,您正在使用 asyncawait,这是 Promises 的更新实现。

只需将 doIt() 函数调用移至异步调用即可。由于这是 Node ,并且是非阻塞的,因此这将是一个更正确的实现。

async function dbQuery() {
const MongoClient = require('mongodb').MongoClient;
const url = "mongodb://localhost:27017/";
const db = await MongoClient.connect(url);
const dbo = db.db("mydb");
const result = await dbo.collection("tblData").find({}).toArray()
return result;
}

async function doIt() {
console.log("Starting...");
try {
const res = await dbQuery();
console.log("Records: " + res.length);
} catch (error) {
console.log(error);
}
console.log("Done!");
}

doIt();

关于Node.js + mongodb : wait for query to complete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50691804/

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