Có thể chạy trình tự với độ trễ, nếu không có sự kiện nào khác đến và trả về tất cả các giá trị cùng một lúc?RxJS: debounceTime trả về tất cả các giá trị
Tôi cần một số loại debounceTime
func, nhưng điều đó sẽ trả về tất cả các giá trị.
Có thể chạy trình tự với độ trễ, nếu không có sự kiện nào khác đến và trả về tất cả các giá trị cùng một lúc?RxJS: debounceTime trả về tất cả các giá trị
Tôi cần một số loại debounceTime
func, nhưng điều đó sẽ trả về tất cả các giá trị.
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(...)