Я выполняю простую функцию загрузки файлов, используя angular и успешно загружаю файл. Проблема в том, что я хочу обновить индикатор выполнения также во время загрузки. Ниже приведена моя функция загрузки
this.http.put(URL.toString(),file,
{
reportProgress: true,
observe: 'events',
headers:{'Content-Type': "multipart/form-data"} ,
}).
subscribe((event: HttpEvent<any>)=> {
if(event.type === HttpEventType.UploadProgress)
{
console.log("Progress : " + Math.round((event.loaded/event.total)*100));
this.zone.run(() => {
this.uploadprogress = Math.round((event.loaded/event.total))*100;
});
this.fileadded = true;
}
});
Вот мой штрих-код Progress
<mat-progress-bar mode="determinate" [value]="uploadprogress"></mat-progress-bar>
, поэтому странно, что моя консоль обновляется, как и ожидалось. но индикатор выполнения не обновляется правильно. когда консоль составляет около 40, она начинает заполняться, а затем значение консоли составляет около 58-60. затем все остальные функции начинают обрабатываться, как this.fileadded = true;
, но загрузка все еще выполняется в соответствии с консолью. может кто-нибудь сказать мне, что я делаю не так здесь