Servislerimdeki aşağıdaki gibi getData() yöntemim var. Bu Gözlemlenebilir'i döndürür. Başka bir hizmet ApiService da bir Gözlemci döndüren get() yöntemine sahiptir.Anlık çağrılarda gözlemlenemeyen abone olmadı [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")
);
});
}
Ben asenkron API bu getData() yöntemini yeniden çalışıyorum benim bileşenden yapılacak çağırır. Aşağıya bakın:
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');
}
});
Hata: Ama ne olur getData-gözlemlenebilir hep apiUrl3 içine abone olmasıdır.
Tek tek abone olmak için her getData() gerekir. Birisi bana yardım edebilir mi?
Beklenen Sonuç: apiUrl1
İşlenmiş apiUrl2 apiUrl3 İşlenmiş
İşlenmiş
Tüm Stackoverflow açıklamalarını ve diğer kaynakları Gözlemler ve Vaatler gerçekte neler olduğunu okuyun. Ama asenkron çağrılarımda bu işe yaramıyor. Yanlış yaptığım şeye yardım edebilir misin? – anusreemn