Angular2 - Router und Observable erweitern

ei angle2 rc2 mit dem Router-Modul v 3.0.0.6alpha erweitere ich das RouterOulet, um zu prüfen, ob der Benutzer angemeldet ist, bevor ich auf den Administrator zugreife. Das ist also der Code:

@Directive({
    selector: 'router-outlet'
})

export class LoggedInRouterOutlet extends RouterOutlet 
{
    publicRoutes: Array<string>;
    private parentOutletMap: RouterOutletMap;
    private userService: UserService;
    private parentRouter: Router;

    constructor(
        parentOutletMap: RouterOutletMap,
        _location: ViewContainerRef,
        @Attribute('name') name: string,
        userService: UserService,
        parentRouter: Router
    ) { 
        super(parentOutletMap, _location, name);

        this.parentRouter = parentRouter;
        this.parentOutletMap = parentOutletMap;
        this.userService = userService;
        this.publicRoutes = [
            'public', 
            'login'
        ];
    }

    activate(factory: ComponentFactory<any>, activatedRoute: ActivatedRoute, providers: ResolvedReflectiveProvider[], outletMap: RouterOutletMap) 
    {
        if (this._canActivate(factory.selector)) { 
            return super.activate(factory, activatedRoute, providers, outletMap); 
        }

        this.parentRouter.navigate(['/login']);
    }

    _canActivate(url) {
        return this.publicRoutes.indexOf(url) !== -1 || this.userService.isLoggedIn()
    }
}

userService.isLoggedIn () muss einen Booleschen Wert zurückgeben. Meine Frage ist: Wie passe ich meinen Code an, um einen http-Aufruf zu tätigen und zu überprüfen, ob der Benutzer angemeldet ist? Denn wenn die Methode isLoggedIn ein beobachtbares Objekt zurückgibt und ich es abonniere, kann ich das Ergebnis nicht in der übergeordneten Funktion zurückgeben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage