我試圖在訂戶中獲得特定值時返回可觀察值,但是我失敗了。如何從訂閱中返回觀察值
這是代碼:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin <-- returns Subscription, not Observable
.map(user => user.access_level)
.subscribe(access => {
// I need to return an observable here
});
}
有沒有在角2可觀的資源,所以我不知道從哪裏開始。任何人都可以幫忙嗎?
更新 - >工作版本
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin
.map(user => {
let accessLevel = user.access_level;
if (accessLevel === 'admin') {
return true;
}
}).first();
}
你應該在** rxjs被谷歌搜索觀測量**,而不是NG2。有大量的資源 – drewmoore
謝謝!我嘗試過,但他們沒有采用相同的格式Angular 2使用它們。我想我必須從頭開始學習。 –
您能否進一步解釋這段代碼的上下文?由於'subscribe'返回'Subscription'對象來取消訂閱,因此不可鏈接,因此通常需要執行'observable.subscribe(...);返回可觀察的。 – estus