redux docs声明商店是一个可观察的商店,你可以订阅它。有没有人知道如何添加运营商来存储订阅,例如'throttle'?
import 'rxjs/add/operator/throttle'
这很好用:
store
.subscribe(() => saveStateToLocalStorage(store.getState()))
这不是:
store
.throttle(1000)
.subscribe(() => saveStateToLocalStorage(store.getState()))
答案 0 :(得分:2)
实际上,redux商店是可观察的,但它不是基于RxJs。 你原生不能做那种事。
如果你在ngrx上使用angular(v2 ou +),你的商店 是一个建立在RxJ之上的observable,所以你可能会做类似的事情。
如果你没有使用ngrx,你应该看一下 redux-observable :https://github.com/redux-observable/redux-observable
答案 1 :(得分:0)
以下是使用RxJS 5的解决方案:
const subject = new Rx.Subject().throttle(1000)
subject.subscribe(() => {
saveStateToLocalStorage(store.getState())
})
store.subscribe(() => {
subject.next()
})