data.service.ts
import { BehaviorSubject, Observable } from 'rxjs';
private data$ = new BehaviorSubject<any>(null);
data: Observable<any> = this.data$.asObservable();
setData(newData: any){
this.data$.next(newData);
}
в вашем классе, где вы написали свою функцию
constructor(...data service...) { }
loadData(id: string) {
merge()
.pipe(
startWith({}),
switchMap(() => {
return this.myService!.getData(id);
}),
map(data => {
return data;
}),
catchError(() => {
this.dataService.setData(observableOf([]));
return observableOf([]);
})
)
.subscribe(data => {
this.dataService.setData(data);
});
}
в том месте, куда вы хотите попасть в myExternalVar
constructor(...data service...) { }
this.dataService.data.subscribe(myExternalVar => {
... do something here...
});