为了防止创建某些对象,我在该类型的对象的beforeSave云功能中设置了条件。并发beforeSave调用允许重复
但是,当同时创建两个对象时,条件不会相应地工作。
这里是我的代码:
Parse.Cloud.beforeSave("Entry", function(request, response) {
var theContest = request.object.get("contest");
theContest.fetch().then(function(contest){
if (contest.get("isFilled") == true) {
response.error('This contest is full.');
} else {
response.success();
});
});
基本上,我不希望创建一个Entry对象,如果比赛是满的。但是,如果比赛中剩余1个位置并且同时保存两个条目,则它们都会被添加。
我知道这是一个边缘案例,但一个合理的关注。