猿问

使用RxJs碰到的问题,如何防止重复订阅?

使用的框架是:Angular2

我在两个组件ArticleListComponentArticleListFilterComponent,使用服务Service进行组件通信,定义了一个SearchService,用来响应ArticleListFilterComponent的变化,来更新ArticleListComponent的列表。

ArticleListComponentngOnInit方法,添加如下代码,添加观察者来监控搜索过滤器的变化。

this.searchService.searchChange$.subscribe(    change => {        for (let key in change) {            
        this.filter[key] = change[key];
        }        //搜索的时候, 重置页数
        this.getArticles(true);
    }
);

但是有一个问题,在Angular2Service是单例的,在每次我路由跳转到ArticleListComponent组件,会调用ngOnInit方法,导致会添加很多重复的订阅者。

有没有什么方法,能够清空订阅者,或者保持只有当前一个订阅者?

查了RxJs的文档,但没看到类似方法。不知道大神们有什么解决方法吗?谢谢大家。


哈士奇WWW
浏览 1170回答 1
1回答

慕尼黑的夜晚无繁华

component destroy 的时候 unsubscribe 啊
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答