BACK
Use casesSubmit protection — защита от двойной отправки
Use cases · 03

Submit protection — защита от двойной отправки

Паттерн

Когда пользователь дважды кликает по «Отправить», без защиты сервер получит два одинаковых запроса. Мы хотим: первый клик стартует запрос, последующие клики игнорируются, пока запрос не завершится.

Чем exhaustMap отличается от switchMap

  • switchMap отменяет предыдущий запрос и стартует новый — для submit это вредно: предыдущая попытка могла уже почти сохраниться.
  • exhaustMap игнорирует новые значения, пока внутренний поток не завершится. Это ровно то поведение, которое нужно для submit.

Что достигаем

Никаких дублей запросов, и не нужно вручную дизейблить кнопку.

script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...