我的问题是如何保证JavaScript中的承诺组的执行?我有3个承诺,一个用于删除用户配置文件图片,一个用于删除用户封面图片,最后一个用于删除用户对象及其信息。我需要处理的是,如果一个承诺被拒绝,我应该取消对其他承诺的保护。因为删除是不合理的,例如,用户图像,但是他的信息没有被删除。有什么建议吗?
vc6uscn91#
这是必须在服务器级别完成的事情,它被称为使操作“原子化”。假设您当前正在发送删除请求,而没有等待每个请求返回后再发送下一个请求?除非服务器专门提供了一种方法来执行原子操作,IidoEe.“执行所有3个或不执行任何一个”,否则使用您当前的工作流您无法实现您所要求的。
假设你不能控制服务器,只能依次调用每个promise,我建议这样做:
一旦用户对象被删除,他们将无法进入系统,因此(大概)图像仍然存在对您来说不是灾难。因此,如果图像删除失败,用户仍然具有他们想要的体验:他们就不能再登录了
在这种情况下,可以反过来删除,也就是说,如果图片删除失败,用户不会被删除,或者图片被删除,但用户不会被删除。假设你可以告诉用户删除不完整,然后再试一次,下一次可能会成功。
1条答案
按热度按时间vc6uscn91#
没有自动方法
这是必须在服务器级别完成的事情,它被称为使操作“原子化”。
假设您当前正在发送删除请求,而没有等待每个请求返回后再发送下一个请求?
除非服务器专门提供了一种方法来执行原子操作,IidoEe.“执行所有3个或不执行任何一个”,否则使用您当前的工作流您无法实现您所要求的。
大多数情况下的解决方案
假设你不能控制服务器,只能依次调用每个promise,我建议这样做:
一旦用户对象被删除,他们将无法进入系统,因此(大概)图像仍然存在对您来说不是灾难。
因此,如果图像删除失败,用户仍然具有他们想要的体验:他们就不能再登录了
法律上必须删除镜像的解决方法
在这种情况下,可以反过来删除,也就是说,如果图片删除失败,用户不会被删除,或者图片被删除,但用户不会被删除。
假设你可以告诉用户删除不完整,然后再试一次,下一次可能会成功。