サブスクライバで特定の値を取得したときにobservableを返そうとしていますが、私は悲惨に失敗します。サブスクリプションからobservableを返す方法
これはコードです:
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で観測ではありませんので、私はどこから始めれば分かりません。誰か助けてくれますか?
UPDATE - >ワーキングバージョン
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();
}
。たくさんのリソースがあります – drewmoore
ありがとう!私はそれを試みたが、Angular 2が同じフォーマットで来ない。私はそれを最初から学ばなければならないと思う。 –
このコードのコンテキストをさらに説明できますか? 'subscribe'は' Subscription'オブジェクトを返すので、それをチェーン解除することはできません。一般的に 'observable.subscribe(...); 「観察可能」に戻る。 – estus