解析 After_Delete 更新计数器

Parse After_Delete Update Counters

当在某些 类 上调用 after_delete 时,我正在使用 Parse 云代码来更新用户的一些计数器。用户有订阅、关注者和关注的计数器,在 before_save 中递增订阅,在 before_delete 中关注和递减相同的 类。

我 运行 遇到的问题是删除用户时。 after_delete 函数会销毁所有相关的 subscriptions/follows,但这会通过 before_delete 为 subscriptions/follows 触发对(已删除)用户的更新。这总是导致 before_delete 出错。

也许我在概念上混淆了实现此目的的最佳方法,但我无法弄清楚如何正确设置以下代码 before_delete:

var fromUserPointer = follow.get("fromUser");
var toUserPointer = follow.get("toUser");

fromUserPointer.fetch().then( function(fromUser){
    // update following counter
    // if from user is already deleted, none of the rest of the promise chain is executed
}.then( function (fromUser){
    return toUserPointer.fetch();
}.then( function(toUser){
    // update followers count
}

有没有办法确定 fromUserPointer 和 toUserPointer 是否指向有效对象而不实际执行提取?

找不到用户不是错误,但由于未处理获取时丢失对象的情况,它被隐含地视为错误。

所以...

fromUserPointer.fetch().then(f(result) {
    // good stuff
}).then(f(result) {
    // good stuff
}).then(f(result) {
    // good stuff
}, f(error) {
    // this is good stuff too, if there's no mode of failure
    // above that would cause you to want NOT to delete, then...
    response.success();
});