我刚开始在Angular 2中实现应用程序。我对下面的代码有一些疑问。为什么在该验证方法中返回Observable而不是布尔类型?如果我查看专家的源代码,他们大多数将返回为Observable。我担心这可能是个愚蠢的问题,但我对此很好奇。为什么返回类型Observable比原始类型好?
authenticate(user: string, pass: string): Observable<boolean> {
return this.http.request(new Request({
method: RequestMethod.Post,
url: this.baseUrl + "login",
body: { name: user, password: pass }
})).map(response => {
let r = response.json();
this.auth_token = r.success ? r.token : null;
return r.success;
});
}
真的吗?但我曾经实现在我非常古老的测试中返回布尔类型。它工作正常,不返回空值... –
执行你的程序时,如果响应出现在返回行之前,那么你将有一个布尔值。这取决于你的网络的速度,也许在本地开发环境中你不会注意到这个问题。如果你认为这不是很清楚,你可以分享你的代码来澄清更多。这是一些[Observables](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html) –
我明白了,谢谢你的解释。 –