对每个循环项执行查询并等待结果
Do a query for every loop item and wait for result
我正在创建一个CloudCode函数,返回与我的设置匹配的所有用户。在这个函数中,我循环遍历一个用户列表,我需要获得他们的设置,以便查看是否应该返回它们。唯一的问题是循环不会等待查询完成。
我怎么能得到设置对象的每个用户在循环中,检查设置是否正确,然后推他们在一个数组和返回数组时,循环已经完成?
我现在使用的代码:
for (var i = 0; i < connectResults.length; i++) {
var connect = connectResults[i];
for (var j = 0; j < matchResults.length; j++) {
var match = matchResults[j];
if (connect.get("sendBy").id == match.id) {
var indexOf = matchResults.indexOf(match);
matchResults.splice(indexOf, 1);
} else if (connect.get("receivedBy").id == match.id) {
var indexOf = matchResults.indexOf(match);
matchResults.splice(indexOf, 1);
}
if(typeof match.get("settings") != 'undefined') {
var settingsQuery = new Parse.Query("Settings");
settingsQuery.equalsTo("objectId",match.get("settings").id);
settingsQuery.find({
success: function(setting) {
console.log(match.get("username") + " " + setting.get("radius"));
}
});
}
}
}
response.success(matchResults);
我将使用设置作为查询约束来查询所有用户,而不是查询所有用户并尝试匹配他们的设置。换句话说,告诉数据库您希望它返回具有正确设置的所有用户。
var usersQuery = new Parse.Query("Users");
//Below, "settings" is the column name in your Users table
usersQuery.equalTo("settings", /* Settings value you are matching */);
usersQuery.find({
//...
});
如果有多种设置可能性,您可能需要containedIn
查询。参见文档中的示例:https://parse.com/docs/js/guide#queries-query-constraints
祝你好运!:)
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 单击按钮以等待单击按钮
- j查询utc offSets的时差
- React组件等待所需道具进行渲染
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何处理node.js节点mongodb中的连接和查询队列
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- j查询使用动画更改图像并等待它触发超链接
- 多查询以及如何等待最后一个查询和做 smth
- Javascript等待函数结束,包括来自node.js的异步MYSQL查询
- 等待数据库查询完成
- 使用'解决'以等待routeProvider中的查询结果
- nodemariasql查询获胜't terminate/是否执行mariadb.end()函数以等待所有查询
- 在运行代码之前等待多个异步JSON查询完成
- Javascript:让函数等待查询完成
- 窗口关闭后仍在等待ajax查询
- 如何使webEnumerator.moveNext等待executeQueryAsync查询执行
- 如何等待月亮完成查询
- 对每个循环项执行查询并等待结果