如何以Angular2方式处理ajaxStart和ajaxStop事件

时间:2016-04-25 15:03:04

标签: javascript ajax angular angular2-http

我需要触发类似于JQuery事件 ajaxStart ajaxStop 我在这里找到了一个半解决方案 - > How to set default HTTP header in Angular2? 所以,目前我可以处理ajaxStart事件。

如何处理ajaxStop事件的任何解决方案?

post(url: string, body: string, options?: RequestOptionsArgs): Observable<Response> {
    //onAjaxStart
    $( "#loader" ).show();
    return super.post(url, body, options); //Any method here to handle event?
}

我尝试使用.catch(),但它只触发onError

我需要在ajax触发时调用我的animate loader,并在每次使用ajax请求时停止它。

所以我试图覆盖默认的ajax方法。但我找不到正确的可观察方法(

1 个答案:

答案 0 :(得分:1)

你可以利用&#34;终于&#34;可观察的算子。

以下是使用示例:

post(url: string, body: string, options?: RequestOptionsArgs): Observable<Response> {
    //onAjaxStart
    $( "#loader" ).show();
    return super.post(url, body, options).finally(() => {
      //onAjaxStop
      $( "#loader" ).hide();
    });
}