Удивительно, но в Rxjs нет оператора throttleWhile
.
Мой пример использования прост:
HTTP-события, отправленные в процессе загрузки файла.
Я хотел бы ограничить их, если событие имеет тип HttpEventType.UploadProgress
и нет, если оно HttpEventType.Response
(чтобы поймать окончательное значение, то есть ответ)
Мой сервисный вызов:
this.httpService
.uploadDocument(file)
.pipe(
throttleTime(200) // <-- would luv throttleWhile here
)
.subscribe((ev: HttpEvent<any>) => {
if (ev.type === HttpEventType.UploadProgress) {
const percentDone = Math.round(100 * ev.loaded / ev.total);
console.log(percentDone);
this.progress = percentDone;
} else if (ev.type === HttpEventType.Response) {
console.log(ev);
}
})
Есть идеи?