Разница между аудитом и debounce в rxjs?

Я читаю официальную документацию rxjs, а затем я понял, что они делают то же самое.

Для меня они оба кажутся точно похожими.

Пожалуйста, отметьте разницу между ними (если есть)

Ответ 1

Я расскажу о различии между ними в терминах их версий Time как то, как я их лучше понимаю.

Оба auditTime и debounceTime будут сначала запускать таймер, когда произойдет событие. Оба будут ждать заданное количество времени, прежде чем они испускают событие. Разница в том, что debounceTime сбрасывает таймер всякий раз, когда приходит новое событие, а auditTime - нет. auditTime будет выдавать самое последнее событие после заданного количества миллисекунд, независимо от того, принимает ли он еще события. debounceTime будет ждать разрыва в событиях. Вы сказали, что читаете документацию, но просто для проверки дважды я нашел этот документ особенно полезный.

Ответ 2

Вот мраморная диаграмма, чтобы сравнить *Time аналоги:

debounceTime vs throttleTime vs auditTime vs sampleTime

Каждое значение здесь представляет время его выброса.

Вы можете поиграть с этой мраморной диаграммой здесь: debounceTime vs throttleTime vs AuditTime vs sampleTime

Уже имея потрясающий ответ от @qfwfq, я хотел добавить более наглядное объяснение.

Надеюсь, это поможет кому-то