取消订阅

时间:2017-08-09 21:00:02

标签: javascript angular rxjs

我在Angular中有一个父组件,它创建一个源自API调用的ReplaySubject。随着过滤器的更改以及对新数据的新调用,这会随着时间而变化。此主题将传递给子组件,以便他们可以处理数据并在过滤器更改并发出新数据时保持更新。

// ParentComponent
public tasksList = new ReplaySubject(1);
queryParams.switchMap(params => apiCall(params)).subscribe(tasks => tasksList.next(tasks));

// ParentComponent template
<task-list [tasks$]="tasksList"></task-list>

// TaskListComponent
tasksSub = tasks$.subscribe();
ngOnDestroy() { tasksSub.unsubscribe(); }

我遇到的问题是,当其中一个子组件被销毁并取消订阅主题时,它会完成主题并且新组件无法订阅。如何分享主题并保持可重玩性,同时还能破坏子组件?

0 个答案:

没有答案