Angular 是否可以作为一个事务进行多个HTTP调用

Angular 是否可以作为一个事务进行多个HTTP调用,angular,Angular,在这种情况下,我需要对不同的端点执行多个HTTP调用,但我需要同时执行这些调用,即如果一个失败,另一个也应该失败或回滚。使用RxJS可以吗? 平行:你可以使用。与Promise.all()类似,如果任何一个失败,所有订阅都将失败 嵌套方式:如果http调用依赖于previus调用,则可以使用按顺序逐个执行它们。通过这种方式,您将订阅每个http调用,直到其中一个失败,因为它将下一个http调用到subscribe()方法中。() 定义回滚。你可以在一个Promise.all中包装几个fetch调

在这种情况下,我需要对不同的端点执行多个HTTP调用,但我需要同时执行这些调用,即如果一个失败,另一个也应该失败或回滚。使用RxJS可以吗?

  • 平行:你可以使用。与Promise.all()类似,如果任何一个失败,所有订阅都将失败
  • 嵌套方式:如果http调用依赖于previus调用,则可以使用按顺序逐个执行它们。通过这种方式,您将订阅每个http调用,直到其中一个失败,因为它将下一个http调用到subscribe()方法中。()

定义回滚。你可以在一个Promise.all中包装几个fetch调用,并知道它们是否都失败/成功,但这不是一个事务,它仍然是多个请求。不,除非在你调用的所有服务的设计中加入某种事务系统。现在,一种非常常见的方法是两阶段提交(two-stage commit),以获得与您想要的内容类似的内容,但它仍然不能完全与ACID数据库中的事务类型相比较。这不是一个您可以问我们的问题。您需要询问端点的开发人员/维护人员他们是否具有回滚功能。但是,这两种方法都不能阻止服务器执行和提交一个操作,然后在下一个操作上失败并抛出HTTP 500错误。