FileReader 应该先完成 onload 函数,然后再处理

问题描述 投票:0回答:0

我想读取上传的文件并通过服务 API 调用将这些内容发送到文件中。但是 Onload 函数最后执行。我想先执行 onload 函数然后才移动到进一步的步骤

checkInScript(file: File, scriptName: string): Observable<Response>{
    console.log("****Before Calling Method***");
    this.checkValidFile(file).then((value) => {
      console.log("****value****",value);
      this.fileValue.next(value);
    })
    console.log("****After Calling method***");
    const formData = new FormData();
    formData.append('updateScript', this.fileValue.value);
    console.log("****Form Data***");
    return this.http.post(this.mccScriptOperationURL  + '/updateScript/' + scriptName, formData);
  }

  checkValidFile(file: File): Promise<string>{
    const fileReader = new FileReader();
    fileReader.readAsText(file);
    return new Promise((resolve) => {
      fileReader.onload = () => {
        console.log("****Inside on Load*****");
        resolve(fileReader.result.toString());
      };
    });
  }

当前执行模式是: 调用方法之前* 调用方法后* 表格数据* 内部负载* 价值

所需的执行模式是: 调用方法之前* 内部负载* 价值* 调用方法后* 表单数据`

javascript angular typescript es6-promise
© www.soinside.com 2019 - 2024. All rights reserved.