0

In RxJS 4.0 I could do something as follows:

let clicks = Observable.fromEvent(board.canvas, 'click'),
    keydowns = Observable.fromEvent(document, 'keydown')
      .filter((e) => e.keyCode === 32);
  return Observable
    .merge(clicks, keydowns)
    .sample(200).
    .timestamp();

Now that RxJS 5.0 dropped support for timestamp, how would this piece of code be done in the migration?

Claudiordgz
  • 3,023
  • 1
  • 21
  • 48

2 Answers2

2

For future readers - .timestamp() has been re-implemented in RxJS 5.0 (in beta.4 (2016-03-29)).

Changelog at: https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md

1

We can recreate this behavior fairly easily by mapping over some source Observable:

function timestamp(source) {
    return source.map(value => ({ value, timestamp: Date.now() }));
}

And in your code:

let clicks = Observable.fromEvent(board.canvas, 'click');
let keydowns = Observable.fromEvent(document, 'keydown')
      .filter((e) => e.keyCode === 32);

let clicksAndKeydowns = Observable
    .merge(clicks, keydowns)
    .sample(200);

return timestamp(clicksAndKeydowns);
Calvin Belden
  • 3,114
  • 1
  • 19
  • 21