从Mongoose结果匿名函数返回父函数
Return parent function from a Mongoose results anonymous function
我正在编写一个函数,该函数返回Mongo数据库中注册的所有用户的列表。
function getUsers() {
db.collection('users').find({}, {username: true}, function(error, results) {
if (results) return results;
return [];
});
}
问题是Mongoose需要一个匿名函数来获取结果,如果我在有结果时试图返回这些结果,那么返回只影响匿名函数,所以父函数返回undefined。我想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
}
});
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数