У меня есть событие клавиатуры, которое вызывает воспроизведение анимации.Пользователь может генерировать больше событий, чем скорость воспроизведения анимации, поэтому я хочу создать очередь, которая в конечном итоге будет очищаться, стреляя один за другим после некоторой задержки.
Желаемая мраморная диаграмма:
=================================================
user: START|a-b-c-----------------------------
result: START|-350ms--a--350ms--b--350ms--c-----
=================================================
user
быстро запускает 3 события (a
b
c
).После возникновения события a
запускается таймер 350 мс.После окончания этого таймера result
запускает a
и запускает еще один таймер на 350 мс.После того, как тот таймер сделан, он запускает b
.В принципе, если таймер работает, я хочу добавить его в очередь и выпустить позже.Скорость не может превышать 350 мс, и я хочу каждое событие.
Я хочу уменьшить вывод событий до 350 мс, но я не хочу использовать оператор throttle
, потому что я не хочу терятьсобытия (я хочу, чтобы сработали a
, b
и c
).
Желательно решение Javascript RxJS, но я приму любой ответ с операторами Rx на любом языке.