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

2016/12 01 14:12
此文章不得转载,如有需要请联系网站管理员。

一度的温暖,一百度的爱情,来自于www.ca788.com的点点滴滴

运用的框架是:Angular2

我在两个组件ArticleListComponentArticleListFilterComponent,运用效力Service中断组件通讯,定义了一个SearchService,用来照应ArticleListFilterComponent的变革,来更新ArticleListComponent的列表。

ArticleListComponentngOnInit办法,添加如下代码,添加察看者来监控搜刮过滤器的变革。

this.searchService.searchChange$.subscribe
    change => {
        for let key in change {
            this.filter[key] = change[key];
        }
        //搜刮的时分, 重置页数
        this.getArticlestrue;
    }
;

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

有没有什么办法,可以清空订阅者,或许对峙只要以后一个订阅者?

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

================ 10-26 16:21 =================
时期在做其他项目,就临时没管这个了。@Cheng_Gushu说的很对,但事前找文档,没有找到确切的运用办法(不得不吐槽下,RxJs的文档构造,以为和PHPExcel的文档一样,没有比较明晰的树状构造)。

后面查了下StackOverflow,发明一哥们和我遇到一样的题目RXJS Observable unsubscribe。

实行subscribe办法后,会前往一个Subscription东西,此时经过调用前往东西的unsubscribe(在5.x之前的版本是运用dispose)来取消订阅。

详细代码如下:

#在ngOnInit办法添加订阅
this.service.searchSubscribe = this.searchService.searchChange$.subscribe
    change => {
        xxx
    }
;
#在ngOnDestroy办法取消订阅
this.service.searchSubscribe.unsubscribe;

component destroy 的时分 unsubscribe 啊

谢邀,抱歉,我如今还不会Angular

  • -!更别说Angular2

(看完/读完)这篇文章有何感想! 来看看www.ca788.com是怎么评论的吧!

--转载请注明: www.ca788.com#亚洲城ca788手机版官网 » 使用RxJs碰到的问题,如何防止重复订阅?

发表评论

(必填)