取消订阅开关图中的第一个可观察者

时间:2018-08-14 12:24:17

标签: rxjs rxjs5

我有两个观测值,第二个需要第一个的结果,所以我使用了switchMap

this.fooSharer.getFoo().pipe(switchMap((foo: Foo) => {
    return this.http.post('/someUrl',
    body,
    headers
  )
}));

所以我有一个Observable对象(来自http.post),但是我对foo Observale的订阅仍然有效,我不能退订,该怎么办?

1 个答案:

答案 0 :(得分:2)

如果将RPC发出的值用作开始第二个Observable的信号,则可以将fooSharer.getFoo()放在take(1)之前。 这样,在第一个发射值之后,switchMap将完成。