gpt4 book ai didi

c# - NodeJS 中是否有任何 C# GetAwaiter 等效项

转载 作者:搜寻专家 更新时间:2023-10-31 23:19:46 25 4
gpt4 key购买 nike

我有这个代码:

async function test() {
var mongo = await MongoClient.connect(connectionString);
var db = await mongo.db(databaseName);
var audit = db.collection(collectionName);
var result = await audit.find({}).toArray();
return arrayData;
}

var myData = test();

但显然 myData 仍然是 promise 对象。在 C# 中,我知道有函数 GetAwaiter 让它等待 promise 完成,在 NodeJS 中是否有任何等效的函数?或者在这种情况下还有其他选择吗?谢谢。

最佳答案

不!所有 async 函数都返回 promises ,并且您需要从另一个 async 函数中 await 它们,或者 then 它们:

所以你可以:

(async () => {
var myData = await test();
})();

test().then(data => {
var myData = data;
});

换句话说,在 Node 中无法将 async 函数转换为 sync 函数。它是始终异步,顺便说一句,这也是 C# 中推荐的方法。


注意当您对 promise 使用 await 时,会抛出 异常,因此您需要将 await 语句包含在 try/catch block 中。但是,当使用 .then() 时,您还需要指定一个 .catch() 方法来处理错误。

关于c# - NodeJS 中是否有任何 C# GetAwaiter 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48474673/

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