我有两个观测值,第二个需要第一个的结果,所以我使用了switchMap:
this.fooSharer.getFoo().pipe(switchMap((foo: Foo) => {
return this.http.post('/someUrl',
body,
headers
)
}));
所以我有一个Observable对象(来自http.post),但是我对foo Observale的订阅仍然有效,我不能退订,该怎么办?
答案 0 :(得分:2)
如果将RPC
发出的值用作开始第二个Observable的信号,则可以将fooSharer.getFoo()
放在take(1)
之前。
这样,在第一个发射值之后,switchMap
将完成。