Parse.Cloud多个成功函数调用

时间:2014-12-12 16:52:33

标签: javascript backbone.js parse-platform

我正在开发一个照片应用程序,我正在编写一个Parse.Cloud程序来更新任何类型的照片类型。

示例:

动物 - > 300张照片 玩具 - > 350张照片 等。

这是云代码

Parse.Cloud.define("updateCategoriesCount", function(request,response){
Parse.Cloud.useMasterKey();
var queryCategory = new Parse.Query("categories");
queryCategory.find({
    success: function(categories){
        for (category in categories){
            var queryRecipes = new Parse.Query("photos");
            queryRecipes.equalTo("categoryObj",category);
            queryRecipes.count({
                success: function(count){
                    category.set("count",count);
                    category.save();
                },
                error: function(error){
                    response.error("Error on counting photos for category");
                }
            });

        }
    },
    error: function(error){}
});

});

但是当调用该函数时,日志是:

输入:{}   失败:错误:无法多次调用成功/错误     在Object.error(:106:9)     at Object.queryPhotos.count.error(main.js:196:16)     在Parse.js:2:7842     在f(Parse.js:2:6754)     在Parse.js:2:6246     at Array.forEach(native)     at Object.x.each.x.forEach [as _arrayEach](Parse.js:1:664)     在c.extend.reject(Parse.js:2:6199)     在f(Parse.js:2:6949)     在Parse.js:2:6246

如何解决这个问题?

谢谢大家:D

1 个答案:

答案 0 :(得分:1)

您的错误处理程序被多次调用,因此您应该尝试发现导致错误的原因。而不是

response.error("some error string");

使用

response.error(error.message);

因此您可以查看您的Parse.com日志,看看发生了什么。请记住.count()函数是异步的,这意味着无论有多少次失败或成功,它都会被多次调用。你最好在这里使用承诺,但让我们先看看错误是什么......