RxJS - 在收到 n 后发出值

RxJS - Emit value after ever n received

是否存在可以通过计数限制排放量的运算符?

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

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

您可以使用 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]);
}