Typescript angular2 canActivate()不适用于可观察的响应

Typescript angular2 canActivate()不适用于可观察的响应,typescript,angular,angular2-routing,Typescript,Angular,Angular2 Routing,我对canActivate angular2.0.0-rc有问题 canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{ console.log('canActivate with AclService'); // return true; return Observable.create((observer:Subject<b

我对canActivate angular2.0.0-rc有问题

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
    console.log('canActivate with AclService'); 
   // return true;
    return Observable.create((observer:Subject<boolean>) => { observer.next(true);  });
   }
canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
返回Observable.create((observator:Subject)=>{observator.next(true);});
}
它不适用于可观察的响应,但适用于简单的布尔响应

如果您添加
.first()
或通过其他方式完成
可观察的
,如何解决此问题

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
    console.log('canActivate with AclService'); 
   // return true;
    return Observable.create((observer:Subject<boolean>) => { observer.next(true);  }).first();
}
canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
返回Observable.create((observer:Subject)=>{observer.next(true);}).first();
}

canActivate(下一步:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
log('canactivatewithaclservice');
//返回true;
可观察的返回(真);
}

什么叫“它不工作”?你期待什么?发生了什么?不工作意味着canActivate角色不工作:如果我返回布尔值(true或false),它的工作意味着当前路由的真实访问是否允许,如果返回false,但如果返回可观察,它不工作,我就有同样的问题。我按照问题的答案做了,但不起作用。当我调用
时返回true立即生效。@DarwinGautalius我向github angular project添加了相同的问题……如果我想要一个Http调用,结果意味着canActivate=false,该怎么办?对不起,我不明白这个问题是关于什么的。
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>{
    console.log('canActivate with AclService'); 
   // return true;
    return Observable.of(true);
}