我有一个警卫保护某条路。 在canActive
方法,我需要做两个http请求,在其第二个是基于第一个响应触发。 然而,第二个请求是从来没有,我以为它是关于返回观测量的嵌套结构。
1 canActivate(route: ActivatedRouteSnapshot,
2 state: RouterStateSnapshot) : Observable<boolean>|boolean {
3 return this.provider.getA().map(
4 dataA => {
5 return this.provider.getB().map(
6 dataB => {
7 return (dataB.allowed);
8 }
9 );
}
);
}
无论木屐()和getB()返回以下内容:
getA() : Observable<any> {
return this.http.post(URL,payload).
map(response => response.json());
};
该代码是简单的,但你可以假设木屐()和getB()正常工作。 木屐()是正常的通过网络发送的,当卫兵被调用,getB()永远不会发送,虽然。 调试器在第5行默默地退出。
还有一两件事,打字稿显示一个警告,可能告诉我已经解决,但是,我是个太过与观测量尤其是菜鸟知道用它做:
Observable<Observable<boolean>>' is not assignable
to type 'Observable<boolean>'
为了让猜测,观测量的构造从来没有解决,这就是为什么没有警告,我等到地老天荒。 我天真的想法是,只要任何可观察到会返回一个布尔值(如7号线完成),用户会知道如何处理它。
我很高兴地读你的提示。 去睡觉了...