【问题标题】:how to do second request with if statement within a observable如何在可观察对象中使用 if 语句进行第二次请求
【发布时间】:2016-11-11 16:28:16
【问题描述】:

目标

我想执行一个 http 请求,还想执行另一个基于 if 语句的 http 请求。观察者需要在以下情况下进行发射:

  1. firstvar 和 secondvar 相等,只执行 1 个 http 请求
  2. firstvar 和 secondvar 不相等,执行了 2 个 http 请求

这是我的一些伪代码

class ApiCallClass {
  methodThatReturnsObservable: Observable<{}> {
   observable = this.http.get(firstUrl);
   if (firstvar !== secondvar) {
     observable.concat(this.http.get(secondUrl);
   }
   return observable;
  }
}

问题

我们注意到第二个请求正在中止。这是因为使用了 concat 并返回了 observable 吗?

我是否正确使用了 concat 方法?

【问题讨论】:

  • 它现在可以工作了,感谢 JB Nizet 和更多的研究。 if 语句错误并且没有返回新的 observable。

标签: angular rxjs observable concat


【解决方案1】:

concat() 返回一个新的 Observable。它不会改变原始的。

所以你需要

observable = observable.concat(this.http.get(secondUrl);

【讨论】:

  • 它仍然不起作用,但感谢您的补充 :) 根据您的回答更改了代码
  • 定义“不起作用”。您的意见是什么,您希望发生什么,以及会发生什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2016-10-19
  • 1970-01-01
  • 2018-06-21
相关资源
最近更新 更多