RxJS - выдавать значение после получения n

Существует ли оператор, который позволяет регулировать выбросы по количеству?

По сути, я хочу повторить вызов Skip. В приведенном ниже примере я хотел бы пропустить 5, передать значение и повторить.

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

person ojhawkins    schedule 26.07.2017    source источник


Ответы (1)


Вы можете использовать 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]);
}
person cartant    schedule 26.07.2017