我剛開始在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) –
我明白了,謝謝你的解釋。 –