Javascript 如何在angular 5中添加标题以形成数据

Javascript 如何在angular 5中添加标题以形成数据,javascript,angular,typescript,header,Javascript,Angular,Typescript,Header,如何向具有进度条的表单数据添加标题 我得到以下错误: src/app/services/auth.service.ts(91,23)中出错:错误TS2554: 应为2-4个参数,但得到5个 代码: public upload( files: Set<File> ): { [key: string]: { progress: Observable<number> } } { // this will be the our resulting map

如何向具有进度条的表单数据添加标题

我得到以下错误:

src/app/services/auth.service.ts(91,23)中出错:错误TS2554: 应为2-4个参数,但得到5个

代码:

   public upload(
    files: Set<File>
  ): { [key: string]: { progress: Observable<number> } } {
    // this will be the our resulting map
    const status: { [key: string]: { progress: Observable<number> } } = {};

    files.forEach(file => {
      // create a new multipart-form for every file

      const formData: FormData = new FormData();
      formData.append('file', file, file.name);

      // formData.append('name', course, course.name);
      // formData.append('text', username, username.name);
      let headers = new Headers();
      this.loadToken();
      headers.append('Authorization', this.authToken);
      // headers.append('Content-type', undefined);


      // create a http-post request and pass the form
      // tell it to report the upload progress

      const req = new HttpRequest('POST', 'users/upload', formData,{headers: headers},{
        reportProgress: true
      });

      // create a new progress-subject for every file
      const progress = new Subject<any>();

      // send the http-request and subscribe for progress-updates

      const startTime = new Date().getTime();
      this.https.request(req).subscribe(event => {
        if (event.type === HttpEventType.UploadProgress) {
          // calculate the progress percentage

          const percentDone = Math.round((100 * event.loaded) / event.total);
          // pass the percentage into the progress-stream
          progress.next(percentDone);
        } else if (event instanceof HttpResponse) {
          // Close the progress-stream if we get an answer form the API
          // The upload is complete
          progress.complete();
        }
      });

      // Save every progress-observable in a map of all observables
      status[file.name] = {
        progress: progress.asObservable()
      };
    });

    // return the map of progress.observables
    return status;
  }
公共上传(
文件:设置
):{[key:string]:{progress:Observable}{
//这将是我们的最终地图
常量状态:{[key:string]:{progress:Observable}}={};
files.forEach(文件=>{
//为每个文件创建一个新的多部分表单
const formData:formData=new formData();
formData.append('file',file,file.name);
//formData.append('name',course,course.name);
//formData.append('text',username,username.name);
let headers=新的headers();
this.loadToken();
headers.append('Authorization',this.authToken);
//headers.append('Content-type',未定义);
//创建http post请求并传递表单
//告诉它报告上传进度
const req=new HttpRequest('POST','users/upload',formData,{headers:headers}{
报告进展:正确
});
//为每个文件创建一个新的进度主题
const progress=新主题();
//发送http请求并订阅进度更新
const startTime=new Date().getTime();
this.https.request(req.subscribe)(事件=>{
if(event.type==HttpEventType.UploadProgress){
//计算进度百分比
const percentDone=Math.round((100*event.loaded)/event.total);
//将百分比传递到进度流中
进度。下一步(完成百分比);
}else if(HttpResponse的事件实例){
//如果我们从API获得答案,请关闭进度流
//上传完成了
进度。完成();
}
});
//将所有可观察到的进度保存在所有可观察到的地图中
状态[文件名]={
进度:progress.asObservable()
};
});
//返回进度图
返回状态;
}
src/app/services/auth.service.ts(91,23)中出错:错误TS2554: 应为2-4个参数,但得到5个

错误消息说它需要2-4个参数,但得到了5个

标题
reportProgress
不应该是单独的参数,它们都应该是中第四个参数的一部分

要修复错误,请更改
HttpRequest
,如下所示:

const req = new HttpRequest('POST', 'users/upload', formData,
  { headers: headers, reportProgress: true });

非常感谢你,它成功了。我有一段时间被困在这个问题上:“)不客气@tonyMacias。我很高兴它起作用了。