在我的angular 8应用程序中,我在一个服务函数中有一个api调用,该函数是一个观察值。api调用是异步的,需要2-3秒,所以我想显示一些指示器,比如沙漏,直到api调用完成。我可以通过等待响应并将其赋值给变量来实现这一点吗?下面是我的观察点:
getCompany(val: string): Observable<string[]> {
return this.http.get<string[]>(`-------myapicall------------`);}
发布于 2021-02-16 19:24:32
您可以在等待loading调用完成时在组件中设置API标志:
getCompany(val: string) {
this.loading = true
this.apiService.getCompany(val)
.subscribe(
(company) => {
this.loading = false
// Do something with company data
},
(err) => {
this.loading = false
// Handle error
}
)
}然后,您可以在模板中使用loading标志来显示沙漏。
注意:记住要处理取消订阅。
发布于 2021-02-16 20:25:34
您总是可以利用Ngrx状态管理来执行这样的任务。这样,您将有效地将调用外部资源的组件和服务解耦,并使其更具可测试性。
您可以为GetCompanyStart、GetCompanySuccess、GetCompanyFailed编写操作。
并行加载-当接收到动作GetCompanyStart.时,reducer可以将‘’标志设置为true
https://stackoverflow.com/questions/66223375
复制相似问题