我有一个简单的测试,我在服务器端有一个Meteor方法,它基本上是一个包含一个集合的变量,让我们说:
Meteor.methods({
usernames: function() {
var test_users = Meteor.users.find();
test_users.forEach(function (user) {
console.log(user.username);
return 'test output';
});
}
})
如果我尝试在Meteor调用的客户端调用它,我不能得到'测试输出'但是console.log会工作,我希望得到第一个'测试输出'..这是一个异步问题吗?
如果我在.forEach循环之后返回'something',它将返回..
答案 0 :(得分:2)
return 'test output';
从您传递给forEach
的匿名函数返回,而不是用户名函数。
假设您想要获取用户名列表,您可能希望使用cursor.map
这样:
Meteor.methods({
usernames: function() {
var test_users = Meteor.users.find();
return test_users.map(function (user) {
console.log(user.username);
return user.username;
});
}
});