zoukankan      html  css  js  c++  java
  • [Angular] Provide Feedback to Progress Events with Angular’s HttpRequest Object

    In some cases your application might need to upload large amounts of data, such as files. Obviously for a good UX we should provide the user some feedback on the progress of the upload. Angular’s HttpRequest object has a property reportProgress which allows us to do exactly that. Let’s see how.

    // service:
    import { Injectable } from '@angular/core';
    import { Observable } from 'rxjs/Observable';
    import { HttpClient, HttpRequest, HttpEvent } from '@angular/common/http';
    
    export interface Person {
      name: string;
    }
    
    @Injectable()
    export class PeopleService {
    
      constructor(private http: HttpClient) {}
    
      uploadAvatar(data): Observable<HttpEvent<Object>> {
        const req = new HttpRequest(
          'POST',
          'https://reqres.in/api/users/1',
          data,
          { reportProgress: true }
        );
    
        return this.http.request(req);
      }
    
    }
    // Component
      import { HttpClient, HttpRequest, HttpEvent, HttpEventType } from '@angular/common/http';
    
    
      uploadAvatar(fileUpload) {
        const formData = new FormData();
        formData.append('avatar', fileUpload.files[0], 'avatar.jpg');
    
        this.peopleService
          .uploadAvatar(formData)
          .subscribe(res => {
            if (res.type === HttpEventType.UploadProgress) {
              const percentage = Math.round(100 * res.loaded / res.total);
    
              this.output = `File is ${percentage}% uploaded`;
            } else if (res instanceof HttpResponse) {
              this.output = `File is completely uploaded`;
            }
          });
    
      }

  • 相关阅读:
    SQL应用初级指南
    XML 文档的基本操作
    SQL中单引号的转义
    C# (输入输出流)
    C# 文件与目录的基本操作(System.IO)
    数据库对象命名
    .Net 中的反射(反射特性) Part.3 (转载)
    C# 中的委托和事件(详解)
    SQL Server TransactSQL 编程
    Brush 色谱
  • 原文地址:https://www.cnblogs.com/Answer1215/p/8448909.html
Copyright © 2011-2022 走看看