Я новичок в Angular, работаю с Angular 4 и Ionic 3.
У меня есть метод, который должен вернуть Observable.
В этом методе мне нужно выбрать наблюдаемый товар между 2 в соответствии со значением первого.
Я пытался выполнить несколько способов, но я не согласен с асинхронизмом.
Следующий код не работает из-за асинхронизма, но я не нашел другого способа.
let obs: Observable<T>;
let localFile: FileBase64Model;
/* This will get my first observer I got to check his value */
obs = this.localDataBaseSrv.getQualityCheckpointFile(fileId) as Observable<T>;
return obs.pipe(
map(file => {
// If observer value is not true I got to return another observer
if(!file) {
// I cannot return observable here, so I'm trying to get value of other observable and put it in my observable that will be return
this.get(`/${fileId}`, undefined, body).subscribe(value => localFile = value as FileBase64Model);
} else {
return file;
}
}),
map( file => {
// When code is here, the localFile is not yet complete because of asynchronous subscribe method !
if(!file) {
return localFile;
} else {
return file;
}
})
);
Может ли кто-нибудь мне помочь?