1
我有一些afterSave代码在parse.com上运行,它出现哟运行它两次。Parse.com云代码 - afterSave运行两次
这里是云代码:
Parse.Cloud.afterSave("Review", function(request) {
var query = new Parse.Query("ReviewAverage");
query.equalTo("vendor", request.object.get("vendor"));
query.find({
success: function(average) {
if (average.length === 1){
average = average[0];
average.increment("numReviews");
var currentTotal = average.get("totalScore") + request.object.get("rating");
var currentAverage = currentTotal/average.get("numReviews");
average.set("totalScore", currentTotal) ;
average.set("averageScore", currentAverage) ;
average.save();
} else {
var average = new Parse.Object("ReviewAverage");
average.set("vendor", request.object.get("vendor"));
average.set("numReviews", 1);
average.set("totalScore", request.object.get("rating"));
average.set("averageScore", request.object.get("rating"));
average.save();
}
},
error: function(e){
console.error("Error updating averages: " + e);
}
});
});
我有我的审查表,还,而不是(按类型的功能解析犯规支持组)计算的评论的平均值在飞行的同一个项目我有另一个表只记录一个项目的运行平均值(由供应商键入)。
我注意到ReviewAverage列中给定供应商的numReviews与相同vendo存在的实际评论数之间存在一些差异。
寻找在日志中,我看到的东西,如下列:
I2014-11-14T08:08:45.818Z] v13: after_save triggered for Review for user dA73DS733H
Input: {"author":{"className":"_User","objectId":"dA73DS733H","__type":"Pointer"},"createdAt":"2014-11-14T08:08:45.815Z","objectId":"j1wfWfQabv","rating":7,"review":"Lacking pigs in blankets and would have benefitted from more crunchy stuffing but otherwise good - the healthy Christmas option.","updatedAt":"2014-11-14T08:08:45.815Z","vendor":"Pret - Christmas veggie lunch","ACL":{"dA73DS733H":{"read":true,"write":true},"*":{"read":true}}}
Result: Success
I2014-11-14T08:08:46.278Z] v13: after_save triggered for Review for user dA73DS733H
Input: {"author":{"__type":"Pointer","className":"_User","objectId":"dA73DS733H"},"rating":7,"review":"Lacking pigs in blankets and would have benefitted from more crunchy stuffing but otherwise good - the healthy Christmas option.","vendor":"Pret - Christmas veggie lunch","createdAt":"2014-11-14T08:08:45.815Z","updatedAt":"2014-11-14T08:08:46.260Z","objectId":"j1wfWfQabv","ACL":{"*":{"read":true},"dA73DS733H":{"read":true,"write":true}}}
Result: Success
我已经看到有问题的一些人,因为他们正在重新保存在afterSave功能 - 但我的节省是永远只给ReviewAverage对象,所以不应该有任何理由再次触发?
我错过了什么吗?
任何解决方案如何不触发afterSave指针保存? Tnx – DaNLtR 2016-01-10 12:34:04
@DaNLtR我还没有能够修复它,只是使用了一种不同的方法......但我读解析开发人员邮件时发现,这个问题已在最新的分析版本中修复。我没有自己测试过。 – Mars 2016-01-10 12:37:39