如何在可观察对象中使用 if 语句进行第二个请求

how to do second request with if statement within a observable

目标

我想执行一个 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 方法?

concat() returns 一个新的 Observable。它不会改变原来的。

所以你需要

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