我的service.ts中有一个方法 getData(),如下所示。这将返回一个Observable。另一个服务 ApiService 还有一个方法 get(),它也返回一个Observable。
Collection< PublicationSession > wantedPublications =
effectiveDatePublicationMap.values() // Collection<List<PublicationSession>>
.stream() // Stream<List<PublicationSession>>
.flatMap(list->list.stream()) // Stream<PublicationSession>
.filter(pub -> PublicationStatus.valueOf(pub.getPublishStatus()) == PublicationStatus.COMPLETE)
.sorted(Comparator.comparing(PublicationSession::getCreateTime))
.collect(toMap(p -> p.getPublicationSession().getEffDateTime(), UnaryOperator.identity(), PICK_LATEST))
.values();
我正在尝试在异步 API调用中重用此getData()方法,以便从我的组件中进行。见下文:
getData(args, parentKey?):any {
return new Observable(observer => {
this.apiService.get(args).subscribe(
response => {
observer.next({
data: response['data'],
status: ($.isEmptyObject(response) ? false : true)
});
},
error => console.log("error : ", error),
() => console.log("finished")
);
});
}
错误: 但是会发生的是getData-observable总是订阅到apiUrl3。
我需要单独订阅每个getData()。有人可以帮帮我吗?
预期结果:
已处理的apiUrl1
已处理的apiUrl2
已处理的apiUrl3
答案 0 :(得分:0)
不确定你的问题在哪里,但这更清楚,也许会奏效。
getData(args, parentKey?):any {
this.apiService.get(args)
.map(response => {
data: response['data'],
status: ($.isEmptyObject(response) ? false : true)
})
.do(() => console.log("finished"))
.catch(error => console.log("error : ", error));
}