return this.auth.user.pipe(
switchMap((user: IUser) => {
return of(true);
})
);
根据用户数据的不同,我的初始代码有些复杂,但是出于测试目的,我在警卫队的canLoad中使用了上面的代码,但该代码无法激活。
有任何TS /编译错误。
无论有没有常春藤,我都尝试过。
我正在使用Angular 8.3;
答案 0 :(得分:6)
您必须使用take(1)
,因为我确定auth.user
是流并且不会完成。警卫需要一个完整的Observable:
return this.auth.user.pipe(
take(1),
switchMap((user: IUser) => of(!!user))
);
也许您删除了一些代码,但是您也可以在这里使用map:
return this.auth.user.pipe(
take(1),
map((user: IUser) => !!user)
);