BACK
PracticeReal-life: bufferToggle() drag session
PRACTICE · 57 · 練

Real-life: bufferToggle() drag session

Open a drag-session buffer and collect all events until the source completes.

  1. Solve the task in the editor — no long theory.
  2. Run the check and compare your output with the expected result.
  3. Stuck? Open the solution and carry the approach into your own code.
Solution 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
Hit Run to see the result...