2016-06-29 4 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

관련 문제