【发布时间】:2020-03-01 22:30:25
【问题描述】:
我只是想在页面加载之前检索数据以便能够显示这些数据。
user.service.ts
export class UserService {
constructor(private httpClient: HttpClient) { }
getUserDetails(username) {
return this.httpClient.get<User[]>(`http://localhost:8080/users/` + username)
.pipe(
map(
userData => {
console.log(userData);
return userData;
}
)
);
}
}
account.component.ts
export class AccountComponent implements OnInit {
username: string;
ngOnInit(): void {
throw new Error('Method not implemented.');
}
constructor(private authenticationService: AuthenticationService, private userService: UserService, private router: Router) {
this.username = sessionStorage.getItem('username');
this.userService.getUserDetails(this.username);
}
logout() {
this.authenticationService.logOut();
}
}
【问题讨论】:
-
您确实意识到,
httpClient进行了异步调用,但您正在同步调用getUserDetails,对吗? -
在
account.component.ts上,将你在构造函数上所做的放在 ngOnInit 上 -
您可能正在寻找路由解析器。 alligator.io/angular/route-resolvers
-
@Eudz 现在它会出现在 getUserDetails() 方法中,但它什么都不做?从未到达 console.log(userDate)?
-
你必须订阅
getUserDetail()
标签: angular asynchronous