为什么 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 并且没有人 .subscribe
s - 所以我不明白这个 post
请求是如何调用的以及为什么.
subscribe
必须写成恕我直言。
注意
我已经知道 canactivate
可以 return bool
/Promise<bool>
/Observable<bool>
路由器正在订阅 canActivate
返回的 observable,它调用 loginService(...).map(...)
返回的 observable
查看从 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 并且没有人 .subscribe
s - 所以我不明白这个 post
请求是如何调用的以及为什么.
subscribe
必须写成恕我直言。
注意
我已经知道 canactivate
可以 return bool
/Promise<bool>
/Observable<bool>
路由器正在订阅 canActivate
返回的 observable,它调用 loginService(...).map(...)