为什么 Angular http.post 在没有 `.subscribe` 的​​情况下被调用?

How come Angular http.post invoked without `.subscribe`?

查看从 canactivate 调用的 authguard :

@Injectable()
export class AuthGuard implements CanActivate {
    constructor(private loginServicePOST:LoginService, private router:Router) { }

    canActivate(next:ActivatedRouteSnapshot, state:RouterStateSnapshot) {
        return this.loginServicePOST({...}).map(e => {
            if (e) {
                return true;
            }
        }).catch(() => {

            return Observable.of(false);
        });
    }   
}

此代码有效,并且向服务器调用了一个 http 请求。

问题:

这是一个 cold observable 并且没有人 .subscribes - 所以我不明白这个 post 请求是如何调用的以及为什么.
subscribe 必须写成恕我直言。

注意
我已经知道 canactivate 可以 return bool/Promise<bool>/Observable<bool>

路由器正在订阅 canActivate 返回的 observable,它调用 loginService(...).map(...)

返回的 observable