мы попытались добавить канал RxJS в наш Angular Resolver: процесс распознавателя запускается, но не заканчивается, поэтому мы не можем показать результат в нашем html-компоненте.
В остальном все работает корректно, если мы переместим пайп на метод ngOnInit основного компонента.
Что мы делаем не так?
Пример с myResolver.ts (Resolve не завершает свой процесс):
resolve(): Observable<any> | Promise<any> | any {
let T = mergeMap((user: firebase.User) => {return Observable.fromPromise(user.getIdToken()) });
let D = mergeMap((token: string) => { return this.http.get('https://myfakedomain.com/user?access_token=' + token) });
let P = this.afAuth.authState // return Observable<User>
.pipe(
T, D
)
return P;
}
Пример с ngOnInit на mainComponent.ts (работает!):
ngOnInit() {
let T = mergeMap((user: firebase.User) => { return Observable.fromPromise(user.getIdToken()) });
let D = mergeMap((token: string) => {return this.http.get(' https://myfakedomain.com/user?access_token=' + token) });
let P = this.afAuth.authState // return Observable<User>
.pipe(
T, D
).subscribe(data => this.myData = data);
}