BACK
Use casesIdle auto-logout — выход по бездействию
Use cases · 09

Idle auto-logout — выход по бездействию

Паттерн

В админках, банковских кабинетах и редакторах сессию нужно завершать после периода бездействия. На vanilla JS это превращается в ручную перекладку setTimeout; на RxJS — в один пайплайн.

Что решаем

  • Слияние источников. Клики, ввод, скролл — всё это «активность».
  • Сброс таймера. На каждом событии нужно начинать отсчёт заново.
  • Один сигнал logout. В конце выдаём ровно одно событие, по которому компонент чистит сессию.

Операторы и их роли

  • merge(click$, key$, ...) — собираем все источники активности в один поток.
  • switchMap(() => timer(N)) — на каждом событии перезапускаем отсчёт, отменяя предыдущий.
  • mapTo('logout') — превращаем срабатывание таймера в осмысленное событие.

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

Чистая декларация: «logout = тишина дольше N». Без счётчиков, без ручных clearTimeout.

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