parse-platform - Parse.com - Promises - 返回父对象和其他一对一对象作为属性

标签 parse-platform

我有 2 个表正在解析 内存和位置具有一对一的关系,但指针位于位置表中(指针)

我需要的是通过跳过和限制十乘十地读取所有内存,并为每个内存附加一个带有位置对象的属性

现在我有这个:

var _ = require('underscore.js');
Parse.Cloud.define("feed", function(request, response) {
    var memories = Parse.Object.extend("Memories");
    var memoriesQuery = new Parse.Query(memories);

    memoriesQuery.skip(0);//request.params.skip);
    memoriesQuery.limit(10);//request.params.limit);
    memoriesQuery.descending("createdAt");
    memoriesQuery.include("group");

    var parsedResults = [];

    memoriesQuery.find().then(function(memories) {

        var promise = Parse.Promise.as();
        _.each(memories, function(memory) {

            promise = promise.then(function() {
                var locations = Parse.Object.extend("Locations");
                var locationsQuery = new Parse.Query(locations);
                locationsQuery.equalTo("memory", memory);

                var subPromise = Parse.Promise();

                locationsQuery.first().then(function(location) {
                    memory["location"] = location;
                    console.log(JSON.stringify(memory) + " ........ " + memory["location"]);
                    console.log("=============");
                    parsedResults.push(memory);
                    subPromise.resolve(memory);
                });
                return subPromise ;
            });
            console.log("-----------");
            console.log("Promise:" +promise.toString());
        });

        return promise;

    }).then(function(){
        response.success(parsedResults);
    });
});

我不知道该怎么办..超过10个小时的尝试。 我感谢任何帮助!

最佳答案

终于解决了! 也许它会对某人有所帮助。

解决方案:

var _ = require('underscore.js');
var memoriesResult = [];
Parse.Cloud.define("feed", function(request, response) {
    var promises = [];
    var promise = findMemories();
    promise.then(function(memories){
        console.log("success promise!!");
        _.each(memories, function (memory) {
            console.log("each");
            promises.push(findLocation(memory));
        });
        return Parse.Promise.when(promises);
    }).then(function(){
        console.log("Finish");
        response.success(memoriesResult);
    }, function(error){
        console.error("Promise Error: " + error.message);
        response.error(error);
    });
});

function findMemories(){
    console.log("Enter findMemories");

    var memories = Parse.Object.extend("Memories");
    var memoriesQuery = new Parse.Query(memories);

    memoriesQuery.skip(0);//request.params.skip);
    memoriesQuery.limit(10);//request.params.limit);
    memoriesQuery.descending("createdAt");
    memoriesQuery.include("group");

    var promise = new Parse.Promise();

    memoriesQuery.find().then(function(memories) {
        console.log("Memories found!");
        promise.resolve(memories);
    }, function(error) {
        promise.reject(error);
    });
    return promise;
}

function findLocation(memory) {
    console.log("Enter findLocation");

    var locations = Parse.Object.extend("Locations");
    var locationsQuery = new Parse.Query(locations);
    locationsQuery.equalTo("memory", memory);

    var promise = new Parse.Promise();

    locationsQuery.first().then(function(location) {
        console.log("Location found");
        memoriesResult.push({"memory": memory, "location" : location});
        promise.resolve(memory);
    }, function(error) {
        promise.reject(error);
    });
    return promise;
}

关于parse-platform - Parse.com - Promises - 返回父对象和其他一对一对象作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220689/

相关文章:

ios - EXC_BAD_INSTRUCTION 尝试从 Parse 获取图像时

rest - 解析 - 限制包含关系返回的字段

ios - Xcode无法将内容解析为info.plist

ios - parse.com 2 "doesNotMatchKey"在一次查询中

ios - 无法从 Parse 对象检索 updatedAt 或 createdAt 值

java - 无法恢复 Activity - NullPointerException

swift - 使用 Swift 和 Parse 同时显示对象

swift - 识别用户在Parse后端的高分排名

swift - 检测何时快速调用 pullToRefresh

java - 我可以将变量传递给私有(private)异步方法吗?