这就是我想做的事情:
获取一个名为
RecentPlayers
的数组,其中包含 4 个 objectId - 这是有效的。对每个 objectId 运行查询以查找其相应的“名称”(字符串)。 - 不工作。
将这些名称放入一个新数组中,命名为
names
,缺乏想象力。 - 一旦 #2 工作,这应该工作。
代码:
$(document).ready(function _RP(){
//Our objectId's array
var recentlyPlayed = Parse.User.current().get("RecentPlayers");
//Our names array
var names = [];
//Converting
var User = Parse.Object.extend("User");
var query = new Parse.Query(User);
for (var j = 0; j < recentlyPlayed.length; j++) {
query.equalTo("objectId", recentlyPlayed[j]);
query.find({
success: function(results) {
var name = results[j].get("name");
console.log(name);
names.push(name);
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
names = names.sort();
错误:
var name = results[j].get("name");
控制台:
(4) Uncaught TypeError: Cannot read property 'get' of undefined
query.find.succes
(anonymous function)
e
(anonymous function)
x.each.x.forEach
c.extend.resolve
e
(anonymous function)
x.each.x.forEach
c.extend.resolve
e
(anonymous function)
x.each.x.forEach
c.extend.resolve
(anonymous function)
e
(anonymous function)
g
c.extend.then
e
(anonymous function)
x.each.x.forEach
c.extend.resolve
j.onreadystatechange
我猜这与 Parse.com 的异步特性有关。感谢您的帮助!
最佳答案
在本例中,query.containedIn可能是更合适的约束。尝试以下代码片段:
var query = new Parse.Query(Parse.User);
query.containedIn("objectId", recentlyPlayed);
query.find().then(function(users) {
for(var i=0; i < users.length; i++) {
names.push(users[i].get("name"));
}
names.sort();
});
关于javascript - Parse.com 循环内查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27433392/