2017-02-09 6 views
0

У меня есть страница со таблицей, в которую я загрузил файл, который я загрузил (получение этого с сервера) , и кнопку загрузки, как только я нажму кнопку upload, он выдаст запрос GET с сервера, чтобы дать мне статус загрузки (сервер может дать отзыв) Проблема в том, что при загрузке большого файла он не переходит к функции «читать статус».Angular2: перезагрузите таблицу при загрузке большого файла

Вот моя часть кода, который я использую:

upload() { 
 
    console.log("Clicked upload"); 
 
    if(this.file.size > 0) { 
 
     let formData:FormData = new FormData(); 
 
     formData.append('csv_file', this.file, this.file.name); 
 
     console.log("uploading file:"); 
 
     var FileName = this.file.name; 
 
     this.startTimer(); 
 
     this._httpRequest.makeFileUpload('csv_upload', formData, FileName) 
 
     .subscribe(MyTests => { 
 
      this.noFile = true; 
 
      this.resetFileName(); 
 
      this.ReadData(); <----------- not running this 
 
     }, 
 
     () => { 
 
      console.log("Error sending file") ; 
 
      this.errorLoading = true; 
 
      } 
 
     ); 
 
    } 
 
    }

, конечно, я не могу назвать this.ReadData() перед загрузкой начинается (чтение данных GET HTTP запрос) Есть ли способ преодолеть это?

enter image description here

+0

Есть ли у Вас какие-либо ошибки в консоли или сетевой вкладке? – kemsky

+0

нет ошибки, я предполагаю, что проблема заключается в том, что она не может выполнить ReadData до тех пор, пока подписка не будет завершена –

+0

Если это так, то вы должны увидеть ожидающий запрос на вкладке в сети инструментов разработчика – kemsky

ответ

0

решаемые, изменив порядок кода на следующий

upload() { 
 
    console.log("Clicked upload"); 
 
    if(this.file.size > 0) { 
 
     let formData:FormData = new FormData(); 
 
     formData.append('csv_file', this.file, this.file.name); 
 
     var FileName = this.file.name; 
 
     this._httpRequest.makeFileUpload('csv_upload', formData, FileName) 
 
     .subscribe(MyTests => { 
 
      this.isLoading=false; 
 
      this.noFile = true; 
 
      this.resetFileName(); 
 
     }, 
 
      () => { 
 
      this.errorLoading = true; 
 
      this.isLoading=false; 
 
     } 
 
     ); 
 
     this.startTimer(); 
 
     this.ReadData(); 
 
    } 
 
    }

 Смежные вопросы

  • Нет связанных вопросов^_^