Angular:如何在后续的Observable中使用`.subscribe()`的结果

时间:2017-11-15 12:42:40

标签: angular observable

Angular2:我想在结果中使用.subscribe()的结果。

这是为了在嵌套订阅中使用来自父订阅的id。

我首先尝试使用.switchMap(),但这似乎无效。

这是我的尝试:

this.serviceA.getOrg()
    .switchMap(org => this.serviceB.getOrgType(org.id))
    .subscribe(type => {
        console.log(type);
});

3 个答案:

答案 0 :(得分:4)

尝试使用flatMap:

 this.serviceA.getOrg()
    .flatMap(org => this.serviceB.getOrgType(org.id))
    .subscribe(type=> {
      console.log(type);
    });

答案 1 :(得分:3)

尝试这样:

this.serviceA.getOrg()
    .flatMap((org) => {
        console.log('org', org);
        return this.serviceB.getOrgType(org.id)
    })
    .subscribe((type) => {
        console.log('type', type);
    });

答案 2 :(得分:2)

请尝试使用.flatMap()

this.serviceA.getOrg()
    .flatMap((org) => this.serviceB.getOrgType(org.id))
    .subscribe((type) => {
        console.log(type);
});