gpt4 book ai didi

javascript - 从 Mongoose 结果匿名函数返回父函数

转载 作者:行者123 更新时间:2023-12-02 19:23:53 25 4
gpt4 key购买 nike

我正在编写一个函数,该函数返回一个列表,其中包含在 Mongo 数据库中注册的所有用户。

function getUsers() {
db.collection('users').find({}, {username: true}, function(error, results) {
if (results) return results;
return [];
});
}

问题是 Mongoose 需要一个匿名函数来获取结果,如果我尝试在获得结果时返回这些结果,则返回只会影响匿名函数,因此父函数返回未定义。我认为 Mongoose 异步运行匿名函数。

解决这个问题的最佳方法是什么?

谢谢。

最佳答案

你是对的;从异步函数返回没有任何意义。您需要异步处理数据库操作的结果。 (正如 Kamugo 提到的那样,您可以使用 Promise,但即使 Promise 也使用回调函数)。

实现这项工作的最直接方法是通过传入回调来使 getUsers 异步,并使用该回调来进行 find 回调:

function getUsers(callback) {
db.collection('users').find({}, {username: true}, callback);
}

然后像这样使用它:

getUsers(function(error, results) {
if (results) {
// do something with results
} else {
// no results
}
});

关于javascript - 从 Mongoose 结果匿名函数返回父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238825/

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