In this article和merge
运算符用于预订排序和分页事件。该函数如下所示:
merge(this.sort.sortChange, this.paginator.page)
.pipe(
tap(() => this.loadLessonsPage())
)
.subscribe();
我们需要保留订阅并在组件销毁时调用unsubscribe吗?
答案 0 :(得分:1)
简短的回答:是的!
更多扩展的答案:您不必手动进行操作!
您可以使用大量operators
来帮助您管理订阅。根本不管理订阅的一种更好的方法是让HTML使用AsyncPipe
为您完成订阅。
示例:
component
this.sortAndPaging = merge(this.sort.sortChange, this.paginator.page)
.pipe(
tap(() => this.loadLessonsPage())
)
html
<div *ngIf="sortAndPaging | async as sortAndPaginaData">
{{ sortAndPagingData | json }}
</div>
通过这种方式,Angular的生命周期管理与AsyncPipe
的结合将跟踪并从订阅本身进行订阅/取消订阅。
正如我前面提到的,另一个强大的解决方案是使用operators
来完成。 RxJS随附许多强大的工具,例如first()
,take(x)
,takeUntil()
和takeWhile()
,它们会自动为您完成和取消订阅。
take(10)
将在完成10个值传递后完成并退订。
针对您的情况的更多具体提示将需要更广泛的问题以及您尝试过的示例。