RxJS - 收到后发出的值

时间:2017-07-26 01:12:51

标签: javascript rxjs redux-observable

是否存在能够通过计数限制排放的运营商?

我基本上想重复一下Skip电话。在下面的例子中,我想跳过5,发出一个值并重复。

export default function errorHandler(action$){
  action$.ofType(types.ERROR)
  /* After every n emissions received, emit once */
  .map(someAction)
}

1 个答案:

答案 0 :(得分:3)

您可以使用bufferCount,它会在缓冲指定数量的操作后发出。

使用RxJS的术语,限制将涉及发出的第一个缓冲操作:

export default function errorHandler(action$){
  action$.ofType(types.ERROR)
    .bufferCount(5)
    .map((actions) => actions[0]);
}

在RxJS的术语中,发出最后一个缓冲的动作将被称为去抖动:

export default function errorHandler(action$){
  action$.ofType(types.ERROR)
    .bufferCount(5)
    .map((actions) => actions[actions.length - 1]);
}