如何在observable中使用if语句执行第二个请求

时间:2016-11-11 08:19:11

标签: angular rxjs observable concat

目标

我想执行一个http请求,并且还希望执行基于if语句的其他http请求。观察者需要在以下情况下发射:

  1. firstvar和secondvar相等,只执行1个http请求
  2. firstvar和secondvar不相等,并且执行了2个http请求
  3. 这是我的一些伪代码

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

    问题

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

    我是否正确使用concat方法?

1 个答案:

答案 0 :(得分:3)

concat() 返回一个新的Observable。它并没有改变原来的那个。

所以你需要

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