Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://unpkg.com/rxjs@6.3.3/bundles/rxjs.umd.min.js"></script>
</head>
<body>
</body>
</html>
 
console.clear();
const { of, from, timer } = rxjs;
const { scan, concatMap, delay, mapTo } = rxjs.operators;
const events = [
  { ts: 100000, value: 'a' },
  { ts: 100100, value: 'b' },
  { ts: 101100, value: 'c' },
  { ts: 101120, value: 'd' },
  { ts: 101150, value: 'e' },
  { ts: 101250, value: 'f' },
  { ts: 101300, value: 'g' },
  { ts: 102000, value: 'h' },
  { ts: 102010, value: 'i' },
  { ts: 103010, value: 'j' }
];
const head = (events.length > 0 && events[0]) || 0;
from(events)
  .pipe(
    scan((p, event) => ({ ...event, diff: event.ts - p.ts }), head),
    concatMap(event => of(event).pipe(delay(event.diff)))
  )
  .subscribe({
    next: event => console.log(event),
    complete: () => console.log('complete')
  });
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
ovrmrwpro
0viewers