Я использую redux observable в качестве промежуточного программного обеспечения для redux, чтобы справиться с побочными эффектами. Я хочу отправить действие A
только тогда, когда действие B
было выполнено более двух раз за определенный период времени (скажем, 500 мс).
Моя попытка: демонстрация
Вот как выглядит эпично:
const pingEpic = action$ =>
action$
.buffer(action$.ofType(CLICK).throttleTime(500))
.map(x => x.length)
.filter(x => x >= 2)
.mapTo({ type: PING });
Эта эпопея правильно накапливает клики в списках и фильтрует те, которые длиннее двух, но действие PING отправляется после еще одного дополнительного щелчка.