JavaScript-使用PDF中的数据进行异步计算

JavaScript-使用PDF中的数据进行异步计算,javascript,html,async-await,filereader,Javascript,Html,Async Await,Filereader,所以,我正在为一个朋友建立这个程序。它会自动从发票中取出所有金额并将其相加。我使用fileReader导入PDF,然后循环它们,然后循环字符串以获得正确的值。之后,我将所有值相加 程序运行良好。然而,由于它是一个循环中的一个循环,所以需要一段时间来汇总这些值。那样的话,当我 console.log(sum) 总数是0。只有当我稍等片刻并在控制台中手动键入console.log(sum)时,才会显示正确的值 所以我猜我必须使它异步?但我已经试了一段时间了,我可以。有人能帮忙吗 //wird AP

所以,我正在为一个朋友建立这个程序。它会自动从发票中取出所有金额并将其相加。我使用fileReader导入PDF,然后循环它们,然后循环字符串以获得正确的值。之后,我将所有值相加

程序运行良好。然而,由于它是一个循环中的一个循环,所以需要一段时间来汇总这些值。那样的话,当我

console.log(sum)
总数是0。只有当我稍等片刻并在控制台中手动键入console.log(sum)时,才会显示正确的值

所以我猜我必须使它异步?但我已经试了一段时间了,我可以。有人能帮忙吗

//wird API von Browser unterstützt?
if (window.File && window.FileReader && window.FileList && window.Blob) {

  } else {
    alert('Die File API wird nicht vom Browser unterstützt. Browser aktualisieren bzw. Google Chrome verwenden')
  }


  let sum = 0


  const input = document.getElementById('files')
  input.addEventListener('change', readmultifiles, false);




   function readmultifiles() {
   
    Object.keys(input.files).forEach(i => {

      const file = input.files[i]
      const reader = new FileReader()
      reader.onload = () => {
        let PDF = reader.result 
     
        
        for (let i = PDF.search("Summe"); i <= PDF.search("Leistung")+3; i++) {
          if(PDF[i] === ",") {
            let amount = "."
            let newAmount = PDF[i-1] + amount + PDF[i+1] + PDF[i+2]
            if(PDF[i-2] !== " ") {
              newAmount = PDF[i-2] + newAmount
            }
            if(PDF[i-3] !== " " && PDF[i-3] !== "(" && PDF[i-3] !== "T") {
              newAmount = PDF[i-3] + newAmount
            }
            if(PDF[i-4] !== " " && PDF[i-4] !=="(" && PDF[i-4] !== "T") {
              newAmount = PDF[i-4] + newAmount
            }
            if(PDF[i-5] !== " " && PDF[i-5] !== "(" && PDF[i-5] !== "T") {
              newAmount = PDF[i-5] + newAmount
            }
            console.log(newAmount)
            let newNewAmount = parseFloat(newAmount)
            let newFixedAmount = newNewAmount
            sum += newFixedAmount
           
          }
        }
  
      }
      
      reader.readAsBinaryString(file)

      
    } )                                               
    console.log(sum)
  }
  





//wird API von Browser unterstützt?
if(window.File&&window.FileReader&&window.FileList&&window.Blob){
}否则{
警报('Die File API wird nicht vom Browser unterstützt.Browser aktualisieren bzw.Google Chrome verwenden')
}
设和=0
常量输入=document.getElementById('文件')
input.addEventListener('change',readmultifiles,false);
函数readmultifiles(){
Object.keys(input.files).forEach(i=>{
const file=input.files[i]
const reader=new FileReader()
reader.onload=()=>{
让PDF=reader.result
for(let i=PDF.search(“Summe”);i