【发布时间】:2018-05-31 13:42:54
【问题描述】:
我们尝试在 Angular Resolver 中添加 RxJS 管道:解析器进程开始但没有结束,因此我们无法在 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;
}
在 mainComponent.ts 上使用 ngOnInit 的示例(有效!):
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);
}
【问题讨论】:
标签: angular routing rxjs resolver