奋斗了好几个小时.....我该如何返回一个自定义可观察对象,它依赖于其他可观察对象的多个链接订阅。就像,我调用一个函数并订阅并检查可观察对象的值,然后确定要调用哪个其他函数。然后调用另一个http请求以从该请求获取新的可观察对象。最后,根据之前的可观察值返回我的自定义可观察值。
答案 0 :(得分:0)
https://medium.com/@danielt1263/recipes-for-combining-observables-in-rxswift-ec4f8157265f有多种方法
this.homeworld = this.http.get('/api/people/1').pipe(
mergeMap(character => this.http.get(character.homeworld)));
这是一个简单的示例,一个可观察的对象如何依赖于另一个可观察的对象,给出问题的确切答案仍然是一个问题,因此您可以在mergeMap周围搜索。
答案 1 :(得分:0)
使用switchMap运算符
import {switchMap} from "rxjs/operators";
import of as off from "rxjs";
processData().pipe(switchMap(result)=>{
if(result=="first"){
return this.httpService.get("/api/first");
}
return this.httpService.get("/api/second");
}).pipe(switchMap(response)=>{
if(response==true){
return off("success");
}
return off("fail");
})