Angular如何取消Observable并重新调用服务方法?
创始人
2024-10-29 07:30:51
0

我们可以使用Subject和switchMap操作符来解决这个问题。当需要取消可观察对象并重新调用服务方法时,可以先定义一个Subject作为开关,并在服务方法中使用switchMap来切换到新的可观察对象。

代码示例:

  1. 在组件中定义一个Subject:
import { Subject } from 'rxjs';

cancel$: Subject = new Subject();
  1. 在服务中定义一个方法,使用switchMap切换到新的可观察对象:
import { Observable, of } from 'rxjs';
import { switchMap, takeUntil } from 'rxjs/operators';

getData(): Observable {
  return this.http.get(url)
    .pipe(
      switchMap(() => this.http.get(newUrl)),
      takeUntil(this.cancel$)
    );
}
  1. 在组件中使用Subject取消可观察对象并重新调用服务方法:
getData() {
  this.service.getData()
    .subscribe(
      data => {
        // do something with data
      }
    );
}

cancelPreviousRequest() {
  this.cancel$.next();
}

相关内容

热门资讯

透视真的(德州之星有外挂)微扑... 透视真的(德州之星有外挂)微扑克的辅助工具(详细辅助黑科技教程)原先是有挂您好,德州之星有外挂,确实...
wepoke有辅助挂!poke... wepoke有辅助挂!pokernow怎么开挂,(德州之星)从前是有挂(详细辅助第三方教程);致您一...
透视好友房(WEPoke)外挂... 透视好友房(WEPoke)外挂透明挂辅助神器(wepoke真的有挂)起初存在有挂(详细透视总结教程)...
透视能赢(wpk德州透视辅助)... 透视能赢(wpk德州透视辅助)推扑克辅助器(详细辅助扑克教程)总是真的有挂;小薇(透视辅助)致您一封...
wepoke辅助技巧!fish... wepoke辅助技巧!fishpoker下载,(wEpoKe)原先真的是有挂(详细透视AA德州教程)...
透视有挂(wePOKE)透明挂... 透视有挂(wePOKE)透明挂辅助工具(wepoke是真的有挂)从前是真的有挂(详细透视可靠教程)1...
透视教程(wepoke辅助)w... 透视教程(wepoke辅助)wpk微扑克系统发牌规律(详细辅助力荐教程)本然真的有挂是一款可以让一直...
WePoKe透明挂!gg扑克发... WePoKe透明挂!gg扑克发牌好假,(wpK)果然存在有挂(详细透视我来教教你);亲真的是有正版授...
透视免费(wepOke)外挂透... 透视免费(wepOke)外挂透明挂辅助技巧(WePoKe透视挂)本然有挂(详细透视技巧教程);最新版...
透视美元局(智星德州菠萝辅助器... 透视美元局(智星德州菠萝辅助器)德州专用扑克高科技(详细辅助德州论坛)都是是有挂,您好,智星德州菠萝...