2017-08-02 98 views
0

我想更新'NotesDB'中的一個字段,該字段指示特定註釋上的註釋數量。解析Cloudcode應該在保存評論後自動執行此操作。解析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 :("); 
      } 
     }); 

回答

1

如你,代碼表示,這是不可能的,看看是否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); 
});