承诺检索时间轴

时间:2014-08-06 05:03:22

标签: node.js parse-platform

现在使用Parse.com几个月,我开始创建一些云功能让我在TimeLine中创建和检索一些元素

我需要从 timeline 的类中获取我的信息,一旦我检索到元素,我就必须调用getStat来添加同一个对象 Widgets 来自我的信息查询和getStat的结果。

我曾尝试使用Promise来实现这一目标,但不确定这是处理它的最佳方法。有什么建议/帮助吗?

Parse.Cloud.define("getTimeline", function(request, response) {
    var user = request.params.user;
    var limit = request.params.limit;
    var page = request.params.page;

    if (limit === undefined) limit = 10;
    if (page === undefined) page = 0;

    var Timeline = Parse.Object.extend("timeline");
    var query = new Parse.Query(Timeline);
    query.equalTo("user", user);
    query.descending('createdAt');
    query.limit(limit);
    query.skip(page * limit);
    var Widgets = {};

    query.find().then(function(results) {
        var promise = Parse.Promise.as();
        _.each(results, function(result) {
            var Widget = new Object();
            Widget.data = result;
            var timeline_id = result.get('timeline_id');
            promise = promise.then(function() {
                return Parse.Cloud.run('getStats', {
                    'timeline_id': timeline_id
                }).then(function(stat) {
                    Widget.stat = stat;
                    Widgets[timeline_id] = Widget;
                });
            });
        });
        return promise;
    }).then(function() {
            response.success(Widgets);
        },
        function(error) {
            response.error("Error: " + error.code + " " + error.message);
        });
});

0 个答案:

没有答案