【问题标题】:How to ignore/handle responses from pending Angular HTTP requests after unsubscribing?取消订阅后如何忽略/处理来自未决 Angular HTTP 请求的响应?
【发布时间】:2018-07-12 20:59:20
【问题描述】:

我正在使用 Angular 5 HttpClient 向服务器发送请求并将响应存储在数据存储服务中。

在我们的场景中,可以使用不同的 API 来响应相同类型的数据。当用户选择从另一个 API 加载数据时: 1. 使用 takeUntil 取消订阅请求, 2. 数据存储被清空, 3. 从新 API 获取数据。

然而,在取消订阅时待处理的请求会继续带来响应。结果,来自前者和后者 API 的数据最终都在数据存储中......不幸。

这是对未订阅的待处理请求的预期吗?这就像在头顶上扔一个球,一旦扔了,就没有办法让它停在半空中?

如果是这种情况,在这种情况下一般使用什么方法来忽略这些不需要的响应?

【问题讨论】:

    标签: angular http observable unsubscribe


    【解决方案1】:

    不,这不是取消订阅的预期行为。实际上,如果您取消订阅,则该请求不应再传递给您的回调(当然,由于 http 协议,实际请求不能被取消) 对我来说,这听起来好像你的代码在其他地方有另一个问题/错误,导致了这个。

    检查一下,这正是你需要的,所以它应该可以工作;)

    https://angular-2-training-book.rangle.io/handout/http/catching-rejections/cancel_request.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 2020-05-02
      • 2018-08-23
      • 1970-01-01
      • 2013-04-01
      相关资源
      最近更新 更多