【发布时间】:2017-09-20 00:57:37
【问题描述】:
在 RxJS v5 中没有实现 pausable 操作符,有没有更好的方法来创建一个可暂停的间隔?下面的代码有效,但通过跟踪最后发出的值作为偏移量来实现。看来应该有更好的办法了……
const source = Rx.Observable.interval(100).share()
const offset = new Rx.BehaviorSubject(0)
let subscription;
let currentValue;
function start() {
subscription = source
.subscribe(i => {
currentValue = i + offset.value
})
}
function pause() {
source.take(1).subscribe(i => offset.next(i + offset.value))
subscription.unsubscribe()
}
【问题讨论】:
-
@cartant 这很有帮助,但源间隔在暂停时仍会重置,因此据我所知,仍然需要跟踪偏移值。