【发布时间】:2017-04-25 07:14:09
【问题描述】:
我的 service.ts 中有一个方法 getData(),如下所示。这将返回一个 Observable。另一个服务 ApiService 也有一个方法 get(),它也返回一个 Observable。
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")
);
});
}
我正在尝试在 异步 API 调用中重用这个 getData() 方法,以便从我的组件进行。见下文:
this.myService.getData({
url: 'apiUrl1',
method: 'Method1',
parameters: {}
}).subscribe(response => {
if (response['status']) {
console.log('Processed apiUrl1');
}
});
this.myService.getData({
url: 'apiUrl2',
method: 'Method2',
parameters: {}
}).subscribe(response => {
if (response['status']) {
console.log('Processed apiUrl2');
}
});
this.myService.getData({
url: 'apiUrl3',
method: 'Method3',
parameters: {}
}).subscribe(response => {
if (response['status']) {
console.log('Processed apiUrl3');
}
});
错误: 但是发生的情况是 getData-observable 始终订阅到 apiUrl3。
我需要单独订阅每个 getData()。有人可以帮帮我吗?
预期结果:
处理后的 apiUrl1
处理后的 apiUrl2
处理后的 apiUrl3
【问题讨论】:
-
我通读了所有关于什么是 Observables 和 Promises 的 stackoverflow 解释和其他资源。但这在我的异步调用的情况下不起作用。你能帮我做错吗?
标签: typescript angular2-services angular2-observables