2017-04-11 23 views

Trả lời

4

Nếu tôi hiểu chính xác, bạn cần một toán tử đệm các sự kiện cho đến khi không có sự kiện nào xảy ra trong một khoảng thời gian nhất định, sau đó lặp lại tất cả các sự kiện đệm. Tôi sẽ cố gắng này:

Set điều hành mới này để nguyên mẫu Quan sát:

function bufferedDebounceTime(time) { 
    return Observable.create(subscriber => { 
     let buffer = []; 
     return this.do(x => buffer.push(x)) 
      .debounceTime(time) 
      .flatMap(() => buffer) 
      .do(() => buffer = []) 
      .subscribe(
       value => subscriber.next(value), 
       err => subscriber.error(err), 
       () => subscriber.complete() 
      ); 
    }); 
} 

Observable.prototype.bufferedDebounceTime = bufferedDebounceTime; 

Sau đó sử dụng nó như là một nhà điều hành:

yourSourceObservable.bufferedDebounceTime(1000).subscribe(...) 
Các vấn đề liên quan