BACK
ПрактикаReal-life: bufferToggle() drag session
ПРАКТИКА · 57 · 練

Real-life: bufferToggle() drag session

Откройте буфер drag-сессии и соберите все события до завершения source.

  1. Решите задачу в редакторе без длинной теории.
  2. Запустите проверку и сравните вывод с ожидаемым.
  3. Если застряли, откройте решение и перенесите подход в свой код.
Решение spoiler · click to reveal
const { from, of, NEVER, bufferToggle, map } = Rx;

const dragEvents$ = from(['down', 'move', 'move', 'up']);

const result$ = dragEvents$.pipe(
  bufferToggle(of('open'), () => NEVER),
  map(events => events.join('|'))
);

result$.subscribe(value => console.log(value));
script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...