0
私はobservableを購読した後、success関数のコールバックから変数 'success'を変更しようとしています。私はそれのためのテストを書いて、成功したPOSTの真を返すことに失敗した後、Chromeデバッガでデバッグしました。角度Observablesサブスクリプション内からローカル関数変数を変更するonSuccess => {}
テストはresponse => {}関数に入りますが、 "success = true"を実行した後もfalseです。他のさまざまな関数でこれをやっているので、他のさまざまな例で見たように、「this」でそれらを参照するために、クラス変数の長いリストを持つ方が好きです。成功を成し遂げる方法はありますか?
public login(username: string, password: string): boolean {
let success = false;
this.http.post<LoginResponse>('/api/login_check', {username: username, password: password}).subscribe(
response => {
success = true;
this.currentUser = new User(response.user);
sessionStorage.setItem('userJWT', response.token);
},
error => {
console.log('Login failed - ' + error);
}
);
return success;
}
に動作します。役職。ログインは同期的で、内部では非同期関数を呼び出すためです。あなたはログインリターンobservableを必要とし、loginを呼び出す場合、結果を返すためにこのメソッドをサブスクライブする必要があります – daremachine