如何根据数据的多个订阅返回我自己的可观察对象

时间:2019-04-23 09:21:31

标签: angular

奋斗了好几个小时.....我该如何返回一个自定义可观察对象,它依赖于其他可观察对象的多个链接订阅。就像,我调用一个函数并订阅并检查可观察对象的值,然后确定要调用哪个其他函数。然后调用另一个http请求以从该请求获取新的可观察对象。最后,根据之前的可观察值返回我的自定义可观察值。

2 个答案:

答案 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");
    })