我有以下内容:
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)已经延迟了事件,但是所有事件的每隔一个块触发。如何对它进行分组,以便我只获得一个事件。
答案 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