Привет, у меня есть 5 угловых приложений. У меня есть метод обслуживания, который возвращает неопределенный.
вот что я пытаюсь сделать. У меня есть функция с именем cloneFlight. я звоню на flightService.getCampaignsToClone (this.flight), который возвращает значение undefined.
cloneFlight() {
combineLatest(
this.translateService.get('CONFIRM.CLONE_FLIGHT', { item: this.flight.name}),
this.flightsService.getCampaignsToClone(this.flight)
).subscribe( ([header, campaigns]) => {
this.cloneFlightService.openModal(header,this.flight,campaigns);
});
}
код для getCampaignsToClone выглядит следующим образом.
getCampaignsToClone(flight: Flight){
let campaignStatusesIdArr: string[];
let campaigns: CampaignUnpaginated[] ;
this.campaignService.getStatuses().subscribe(
(data) => {
campaignStatusesIdArr = data.filter( x => x.code === (CampaignStatusCode.IN_PROGRESS ||
CampaignStatusCode.READY)).map( y => y.id);
}
);
let accountId: string = flight.campaign.account.id;
this.campaignService.getUnpaginatedCampaigns(
{
statuses: campaignStatusesIdArr,
accounts: accountId
}
).subscribe(data=>{
console.log(data);
campaigns = data;
});
return Observable.of(campaigns);
}
в getCampaignsToClone я делаю http-вызов campaignService.getStatuses (), который возвращает Observable. затем отфильтровывая некоторые из них, а затем я звоню
getUnpaginatedCampaigns, который является еще одним http-вызовом. anyidea, каков наилучший способ написать этот код, чтобы метод не возвращал undefined. Я думаю, что я, вероятно, не использую операторы rxjs. может кто-нибудь помочь мне разобраться.
Большое спасибо