解析 CloudCode 有时不起作用

Parse CloudCode sometimes does not work

我想更新 'NotesDB' 中的一个字段,该字段指示特定注释的评论数。 Parse Cloudcode 应在保存评论后自动执行此操作。

在实践中有时会,有时不会(即使是同一个用户,在同一个音符上)。评论本身总是被正确保存。

有什么方法可以改进这段代码吗?

Parse.Cloud.afterSave("CommentsDB", function(request) {

var OriginalNote = request.object.get("OriginalPostId");
var query = new Parse.Query("NoteDB");   
query.get(OriginalNote, {
      success: function(post) {
      post.increment("NumberOfComments");
      post.save();
    },

            error: function(error) {
                console.log("An error occured :(");
            }
        });

按照您的代码,无法查看 post.save() 调用是否失败(如果失败,原因),也许可以尝试链接您的承诺:

query.get(OriginalNote,{useMasterKey:true}).then (function (post) {
    post.increment("NumberOfComments");
    return post.save(null,{useMasterKey:true});
}).then (function (savedPost) {
    console.log('post incremented ok to ' + savedPost.get('NumberOfComments'));
},function (err) {
    //this function will catch any error in the promise chain : query.get() or post.save()
    console.error('An error occured : ' + err.message);
});