Throttle
метод пропускает значения из наблюдаемой последовательности, если другие следуют слишком быстро. Но мне нужен метод, чтобы просто задержать их. То есть мне нужно установить минимальную задержку между элементами, не пропуская никаких.
Практический пример: существует веб-служба, которая может принимать запросы не быстрее, чем один раз в секунду; есть пользователь, который может добавлять запросы, одиночные или в пакетах. Без Rx я создам список и таймер. Когда пользователи добавят запросы, я добавлю их в список. В событии таймера я проверю, что список пуст. Если это не так, я отправлю запрос и удалю соответствующий элемент. С замками и всем этим. Теперь, с Rx, я могу создать Subject
, добавлять элементы, когда пользователи добавляют запросы. Но мне нужен способ убедиться, что веб-сервис не заливается, применяя задержки.
Я новичок в Rx, поэтому, возможно, мне не хватает чего-то очевидного.