Angular Функция выполнения загрузки не работает должным образом - PullRequest
0 голосов
/ 17 января 2020

Я выполняю простую функцию загрузки файлов, используя 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;

, но загрузка все еще выполняется в соответствии с консолью. может кто-нибудь сказать мне, что я делаю не так здесь enter image description here

...