【发布时间】:2019-05-07 16:19:12
【问题描述】:
我需要在订阅方法中调用订阅方法。
在第一个 subscribe 方法中,它返回给我一个 deviceid,它随后在第二个 subscribe 方法中使用。
result=[];
idArray=[2,4];
this.subscription =
this.quoteService.get(this.quoteid) //first api call
.subscribe((quote: Quote) => {
this.deviceid = quote["deviceid"];
this.faultService.get(this.deviceid) //second api call
.pipe(first())
.subscribe((faultGroup: FaultGroup[]) => {
faultGroup.forEach(({ faults }) => {
//execute logic for 2nd subscription
if (faults) {
faults
.filter(
({ id }) => this.idArray.indexOf(id) > -1,
)
.forEach(fault => this.result.push(fault.name));
}
//end of logic
});
});
subscription.unsubscribe();
}
});
有人可以教我如何使用 flatMap/switchMap 来避免使用嵌套订阅吗?感谢您的帮助!
【问题讨论】:
-
什么是
first()?同步方法?
标签: angular angular6 subscription subscribe