将rxjs运算符添加到redux商店订阅

时间:2017-03-10 04:23:02

标签: redux rxjs

redux docs声明商店是一个可观察的商店,你可以订阅它。有没有人知道如何添加运营商来存储订阅,例如'throttle'?

import 'rxjs/add/operator/throttle'

这很好用:

store
  .subscribe(() => saveStateToLocalStorage(store.getState()))

这不是:

store
  .throttle(1000)
  .subscribe(() => saveStateToLocalStorage(store.getState()))

2 个答案:

答案 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()
})