0
約束から値を戻してグローバル変数に含めるにはどうすればいいですか?角度4の約束の出口での戻り値
私はこれを形成しようとしていますが、無駄です。グローバル変数は未定義です
import { Injectable } from '@angular/core';
import {ActivatedRouteSnapshot, CanActivate, CanLoad, Route, Router, RouterStateSnapshot} from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { Auth } from '../providers/auth';
@Injectable()
export class AuthGuard implements CanActivate, CanLoad {
_check: boolean;
constructor(private auth: Auth, private router: Router) {
console.log(this.check());
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
return this.check();
}
canLoad(Route: Route): Observable<boolean> | boolean {
return this.check();
}
check() {
this.auth.check().then((user) => {
if (!user) {
this._check = null;
}else {
this._check = true;
}
});
console.log(this._check) <---- undefined
return this._check;
}
}
こんにちは。 trueまたはfalseを返すにはcheck()関数が必要です。ありがとう –
あなたはブロックでthis._checkを返すことができます。私はちょっと後で私の答えを更新します。 – nightElf91
@ user2716095私は自分の答えを更新しました。それがあなたの解決策に役立った場合は、答えとして選択してください。 – nightElf91