Я хочу реализовать функцию автосохранения. У меня есть два наблюдаемых:
IObservable<Unit> changes
: создает элемент каждый раз, когда пользователь редактирует текстIObservable<Unit> saves
: генерирует событие сохранения каждый раз, когда нажимается кнопка сохранения.
Теперь я хочу объединить их в третий поток writeBack. У этого потока есть подписчик, который записывает текущий текст в базу данных.
Как создать поток writeBack, чтобы он выполнял следующие свойства?
- несохраненное изменение записывается обратно, если в течение 3 секунд не произошло никаких изменений (например, дросселирование)
- событие сохранения немедленно записывает последнее несохраненное изменение
Я хочу, чтобы только записывались несохраненные изменения. Я не хочу сохранять текст, если:
- есть событие сохранения, но никаких изменений
- два события сохранения подряд, но между ними нет изменений
- есть событие сохранения между изменением и его автосохранением