取消http请求

时间:2016-03-15 17:48:27

标签: typescript angular angular2-http

在jQuery ajax中,有一种方法可以中止ajax查询:

var xhr = $.ajax({ ... });

当用户想要中止操作或导航到我可以调用的单页应用程序中的其他页面时

xhr.abort();

在angular2-http api中,由于使用rxjs,我找不到中止查询的任何可能性。

有没有办法在angular2中中止ajax查询?

2 个答案:

答案 0 :(得分:3)

订阅时,您将获得可用于取消订阅的订阅

this.httpSubscription = this.http.get(...).subscribe(...);
...
this.httpSubscription.unsubscribe();

答案 1 :(得分:1)

对于一个简单的解决方案,您可以使用以下内容,但您也可以使用.switchMap rxjs方法..

if ( this.subscription ) {
   this.subscription.unsubscribe();
}
this.subscription = this.http.get( 'awesomeApi' )
 .subscribe((res)=> {
  // your awesome code..
})