tl;dr:在执行await oktaAuthService.login('/');之后,将跳过下一个指令。
我有以下几点:
import {Injectable} from '@angular/core';
import {OktaAuthService} from '@okta/okta-angular';
@Injectable({
providedIn: 'root'
})
export class AuthService {
this.user = undefined;
constructor(private oktaAuthService: OktaAuthService, private bkndSrv: BackendService) {}
async login() {
await this.oktaAuthService.login('/');
// the next 2 lines are not being executing!
this.user = await this.oktaAuth.getUser();
console.log("user: ", this.user);
}当我调用login()函数时,我被重定向到okta登录页面,并且成功地使用令牌重定向回定向。但是,我没有在屏幕上看到日志,即使在登录函数完成之后,this.user仍然没有定义。
任何帮助都将不胜感激!
发布于 2020-10-27 11:13:39
那么,重构到.then表示法就做到了。即
login() {
this. oktaAuthService.login('/').then(() => {
this. oktaAuthService.getUser().then((user) => {
this.user = user;
console.log('user: ', this.user);
});
});
}但是,如果有人知道如何使用异步等待,请分享!
https://stackoverflow.com/questions/64551922
复制相似问题