【发布时间】:2016-01-21 20:58:08
【问题描述】:
我正在尝试从 Parse.com 获取所有帖子,并检查当前用户是否喜欢每个帖子。据我了解,内部查询无法在 for 循环内完成,因为它是一个异步函数。我不明白如何以允许我检查每个帖子的方式对其进行格式化。我试过 $q.defer() 但它也没有工作。任何帮助将不胜感激
var imageGallery = Parse.Object.extend("Gallery");
var query = new Parse.Query(imageGallery);
query.include("user");
query.near("location", $rootScope.currentLocation);
query.find({
success: function(results) {
var i = 0;
for (i; i < results.length; i++) {
var object = results[i];
var galleryLike = Parse.Object.extend("GalleryLike");
var likeQuery = new Parse.Query(galleryLike);
likeQuery.include('gallery');
likeQuery.include('user');
likeQuery.equalTo('gallery', object);
likeQuery.equalTo('user', Parse.User.current());
likeQuery.find({
success: function(res) {
if (res.length == 0) {
var like = "false";
} else {
var like = "true";
}
},
error: function(error) {
}
});
var distance = object.get('location').kilometersTo($rootScope.currentLocation);
self.images.push({
object: object,
locationName: object.get('locationName'),
caption: object.get('caption'),
img: object.get('img').url(),
username: object.get('user').get('username'),
userprofpic: object.get('user').get('profpic').url(),
distance: distance,
isLiked: like
});
}
$scope.$apply();
$ionicLoading.hide();
},
error: function(error) {
$ionicLoading.hide();
}
});
【问题讨论】:
-
将 for 循环 的主体包裹在自调用函数中并将 i 作为参数粘贴,应该会有所帮助
-
这样做会以随机顺序返回查询结果,而不是按邻近度
标签: javascript angularjs for-loop asynchronous parse-platform