如何在角度为2的http调用中响应处于挂起状态时采取某些操作?

时间:2016-12-22 10:23:48

标签: angular angular2-http

我有一个http调用,它会在某个时候返回响应。当响应处于挂起状态时,我想向用户显示一条消息,或者添加一个微调器,告诉用户等待响应。如何在角度2中执行此操作?

4 个答案:

答案 0 :(得分:1)

在HTML中创建一些像这样的加载器:

<div *nfIf="loader">
// some svg or whatever you want to represent loader
<div>

在HTTP调用中,您将加载变量设为true,并在响应时将其设为false。

public getData(anyParam: any): Observable<any> {
   this.loader = true;
   return this.http.get('anyUrl')
     .do(response => {
        // we are done! stop spinner !
        this.loader = false;
     })
     .map(...);
}

答案 1 :(得分:0)

我猜你会为此实现Servicehttps://angular.io/docs/ts/latest/tutorial/toh-pt4.html)。

所以会有一个函数getData()

public getData(anyParam: any): Observable<any> {
  // start spinner !
  return this.http.get('anyUrl')
     .do(response => {
        // we are done! stop spinner !
     })
     .map(...);
}

答案 2 :(得分:0)

_msgPopup.show("Wait while fetching data"); // Show popup
_http.get('anshumanpatil.com').subscribe(res=>{
    _msgPopup.hide(); //call ended
});

答案 3 :(得分:0)

问题的解决方案是在启动请求之前声明变量(或显示微调器或任何内容),然后在请求完成时隐藏它。

您的代码类似于:

this.isLoading = true;
this.get().finally(() => this.isLoading = false);

它将直接显示然后隐藏它,下一部分只是处理模板中的ngIf显示。