5
我在我的service.ts中有一個方法getData(),如下所示。這會返回一個Observable。另一種服務ApiService也有一個方法get()它也返回一個Observable。在異步調用中訂閱Observable不工作[Angular2]
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觀察的總是訂閱到apiUrl3。
我需要每個getData()單獨訂閱。有人可以幫我嗎?
預期結果:
加工apiUrl1
加工apiUrl2
加工apiUrl3
我通過所有的stackoverflow解釋和其他資源來了解Observable和Promises真的是什麼。但是在我的異步調用中這不起作用。你能幫我做什麼錯嗎? – anusreemn