rxjs:按小时分组

时间:2016-10-24 08:21:11

标签: typescript rxjs

我有以下内容:

let observable = Observable.create((observer: Observer<any>) => {
    this.observer = observer;
});
....
can fire fast in row:
observable.next('a new message');

observable
  .delay(1000)
  .subscribe((msg: any) => {
    // Not interested in msg, just in the event.
  });

我根本不对这条消息感兴趣。 只有在fiered事件中。但是喜欢分组快速排队的事件。 .delay(1000)已经延迟了事件,但是所有事件的每隔一个块触发。如何对它进行分组,以便我只获得一个事件。

1 个答案:

答案 0 :(得分:0)

如果你想要有损电话,你可以使用 .debounceTime(),这将放弃发出的值,直到源安静一段时间。

无损耗替代方案是 .bufferTime(),它提供特定时间间隔内所有发射值的数组。

来自文档示例[1]

var clicks = Rx.Observable.fromEvent(document, 'click');
var buffered = clicks.bufferTime(1000);
buffered.subscribe(x => console.log(x))

[1] http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-bufferTime