2016-06-29 12 views
0

私はファイルの配列を持っており、このファイルをjson(この時点ではオブジェクト)に書式化して他の情報が必要です。ここに私が試したことがあります.map()を使ってFileReaderで複数のファイルを読む

const uploadData = Files.map((file) => { 
    const fr = new FileReader(); 
    fr.readAsArrayBuffer(file); 
    fr.onload = (event) =>{ 
    const fileData = event.target.result; 
    return { 
     query:{ 
     documentName: file.name, 
     personId: personId, 
     serviceId: serviceID, 
     documentFile: fileData, 
     } 
    } 
    } 
    }) 

私は不変のテクニックを使いたいです。私はこれがなぜ機能しないのかと推測していますが、それを修正する方法は考えていません。私は、.mapがfilereaderの読み込みを待つことはないので、未定義の値の配列だけを返します。私はIIFEを使用しようとしましたが失敗しました。

答えて

1
const uploadData = [], 

Files.forEach((file) => { 
    const fr = new FileReader(); 
    fr.readAsArrayBuffer(file); 
    fr.onload = (event) =>{ 
    const fileData = event.target.result; 

     uploadData.push(query:{ 
     documentName: file.name, 
     personId: personId, 
     serviceId: serviceID, 
     documentFile: fileData, 
     }) 
    } 
    }) 

リターンがコールバックで発生しているので、あなたは地元のVARを使用して

+0

プッシュなどのデータをプッシュすべき不変のルールを破っているし、私もあなたがconstのにプッシュすることができるとは思いません。 – user2933157

関連する問題