【发布时间】:2020-08-12 05:37:50
【问题描述】:
我认为我应该将 RXJS 用于特定的用例。用例是我有一个订阅,我想一直到其他地方的主题发出某个值为止。
例如:
// The sub to unsub when a certain <value> is emitted from a Subject elsewhere.
this.someObservable.subscribe(() => ...)
// Somewhere in the code far, far away, this should kill the subscription(s) that cares about <value>
this.kill.next(<value>)
我处理这个问题的方法是缓存订阅,然后在调用this.kill.next(<value>) 和相关的<value> 时取消订阅。不过,这是命令式的方法,感觉可以通过takeWhile 或其他类似技术做得更好。也许我可能需要将someObservable 与kill 主题合并?
如何利用 RXJS 来处理这个问题?
【问题讨论】:
-
所有选项似乎都是可行的。选择对您和您的团队来说最直接的方法。
-
听起来就像
takeUntil(this.kill.pipe(map(/* ... */)) -
@martin
map里面有什么?类似:map((val) => val === <valueOfInterest>)? -
Ups,我的意思不是
filter()不是map()。
标签: rxjs