javascript 执行一组promise或全部取消

8tntrjer  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(197)

我的问题是如何保证JavaScript中的承诺组的执行?我有3个承诺,一个用于删除用户配置文件图片,一个用于删除用户封面图片,最后一个用于删除用户对象及其信息。
我需要处理的是,如果一个承诺被拒绝,我应该取消对其他承诺的保护。因为删除是不合理的,例如,用户图像,但是他的信息没有被删除。
有什么建议吗?

vc6uscn9

vc6uscn91#

没有自动方法

这是必须在服务器级别完成的事情,它被称为使操作“原子化”。
假设您当前正在发送删除请求,而没有等待每个请求返回后再发送下一个请求?
除非服务器专门提供了一种方法来执行原子操作,IidoEe.“执行所有3个或不执行任何一个”,否则使用您当前的工作流您无法实现您所要求的。

大多数情况下的解决方案

假设你不能控制服务器,只能依次调用每个promise,我建议这样做:

  • 调用用户对象删除
  • 如果成功,调用用户配置文件图片删除
  • 如果成功,调用用户封面图片

一旦用户对象被删除,他们将无法进入系统,因此(大概)图像仍然存在对您来说不是灾难。
因此,如果图像删除失败,用户仍然具有他们想要的体验:他们就不能再登录了

法律上必须删除镜像的解决方法

在这种情况下,可以反过来删除,也就是说,如果图片删除失败,用户不会被删除,或者图片被删除,但用户不会被删除。
假设你可以告诉用户删除不完整,然后再试一次,下一次可能会成功。

相关问题