angular - Angular 6/RxJS 如何使用 takeUntil() 和路由参数取消订阅
问题描述
我需要做一些我觉得太棘手的事情。我正在尝试取消订阅Subscription
usingtakeUntil
并等待路由参数发出更改。
这是棘手的部分:我需要takeUntil
在路线内部设置 params subscribe
。它应该是这样的:
ngOnInit(): void {
this.route.params.subscribe(params => {
this.autoMethodSubscription = interval(5000).pipe(takeUntil(this.route.params)).subscribe(() => { this.autoMethod(); });
});
}
autoMethodSubscription
不起作用,因为我认为它会取消订阅。有任何想法吗?
解决方案
你可以skip
第一个。
interval(5000).pipe(
takeUntil(
this.route.params
.pipe(skip(1))
)).subscribe(() => //...
或者您可以filter
更改route.params
以指定哪种路由更改将强制取消订阅。
或者您可以使用最常见的模式,取消订阅销毁。
你的目标到底是什么?
推荐阅读
- angular - 角formarray推送formgroup
- python - NSEPY get_history() 函数不适用于货币
- macos - 节点模块在我的 Mac 上无缘无故丢失
- image - 从数字渲染图像,从数据库收集数据
- python - 无法连接到位于另一台服务器上的 sqlplus
- spring - 在按其他属性分组的属性中选择具有最大值的表行
- node.js - Node 的 Cassandra-driver 未连接到 ScyllaDB 服务器
- c# - 程序没有抛出 ArgumentOutOfRange 异常
- android - Google Play 中的“启用高级托管 Google Play 功能”是否有任何其他影响
- c# - 使用无参数构造函数初始化 Struct