Parse.com云代码永远不会输入成功/错误

时间:2014-11-12 16:26:41

标签: javascript ios parse-platform cloud

我的代码在我的解析云中运行,当我从我的应用程序中调用它时,它永远不会输入成功或错误声明。可能是因为.save无效?

非常感谢任何帮助:)

这就是我称之为云功能的方式:

[PFCloud callFunctionInBackground:@"addFeeling"
                   withParameters:@{@"userId"           : [[PFUser currentUser]objectId],
                                    @"relationShipId"   : _friendship.objectId,
                                    @"tagId"            : [NSNumber numberWithInt:tag],
                                    @"reason"           : @"Hardcoded HomeView(409)",
                                    @"value"            : [NSNumber numberWithInt:value]}
                            block:^(NSString *result, NSError *error) {
                                if (!error) {
                                    DLog(@"results :%@", result);
                                }
                                else{
                                    DLog(@"Error : %@", error);
                                }
                            }];

这就是云计算本身:

Parse.Cloud.define("addFeeling", function(request, response) {
    var userId         = request.params.userId;
    var relationShipId = request.params.friendshipId;
    var tagId          = request.params.tagId;
    var reason         = request.params.reason;
    var value          = request.params.value;

    var Feels = Parse.Object.extend("Feels");
    var feeling = new Feels();
    feeling.set("id_friendship", relationShipId);
    feeling.set("value", value);
    feeling.set("tag", tagId);
    feeling.set("reason", reason);
    feeling.save({
        success: function () {
            var query = new Parse.Query("Feels");
            query.equalTo("id_friendship", relationShipId);
            query.find({
                success: function(results) {
                    if(results.length > 0)
                    {
                        result = results[0];
                        if(result.get("userFrom") == userId)
                            result.set("scoreTo"  , result.get("scoreTo") + value);
                        else
                            result.set("scoreFrom", result.get("scoreFrom") + value);
                        result.save();
                    }
                }
            });
            console.log("Save ok");
        },
        error: function (error) {
            response.error(error);
            console.log("Save ko");
        }
    });
});

这可能很简单,但我根本不习惯JS。

我得到的错误是代码:141,enver输入成功/错误。

1 个答案:

答案 0 :(得分:0)

当你的功能完成你想要做的事情时,你应该拨打response.success()response.error()来表示你已经完成了。

您已经在出现错误的情况下执行此操作,但在实际处理查询结果时却没有。