解析,删除之前的云代码

Parse, cloud code beforeDelete

在删除我的用户之前,我想删除另一个 class 中的一些对象。这在 Swift.

中工作正常
class func deleteAnonymousUserListSettings(completetion:(result:Bool, error:NSError!) -> Void){
    var queryListSettings = PFQuery(className: "ListSettings")
    queryListSettings.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
        if let objs = objects as? [PFObject] where error == nil {
            PFObject.deleteAllInBackground(objs, block: { (success, error) -> Void in
                if success{
                    completetion(result: success, error: error)
                }
            })
        }
    }
}

现在我想把它转移到cloudCode。大约 10 次中有 1 次有效,但我不知道为什么或何时有效,有时无效。

Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
  var query = new Parse.Query('ListSettings');
  query.find({
  success: function(results) {

      for (var i = 0; i < results.length; i+=1) {
        results[i].destroy();
      }
      response.success(results);
    },
    error: function() {results
      response.error("error");
    }
  });
});

请帮忙。

您可以一次删除所有对象,而不是一个一个地删除,如果成功则return成功。您可以通过以下代码块执行此操作;

   query.find().then(function (results) 
   {
      Parse.Object.destroyAll(results); 
      response.success("Success"); 
    }, 
    function (error) 
    {
      response.success("Error"); 
    })

希望这个helps.Regards.

开始吧,这对我有用。

Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
    var query = new Parse.Query('ListSettings');
    query.find().then(function(results) {

      return Parse.Object.destroyAll(results);
    }).then(function() {
      response.success();

    }, function(error) {
      response.error("Error removing ListSettings.");

    });
});