FileReader()로 여러 파일을 읽은 다음 조작하는 중이지만 onload 루프 외부에서 파일 데이터를 사용하는 방법을 알아낼 수 없습니다. 이 경우 writer div에 쓸 수 있지만 "unidentified"만 writer2 div에 출력됩니다. 내가 읽은 것부터 문제가 클로저와 관련이있을 것 같습니다. 나는 잘 모르겠다.여러 파일을 읽고 JavaScript를 사용하여 .onload 루프 외부에서 조작하는 방법은 무엇입니까?
<script type="text/javascript">
function Slurper(that)
{
if(that.files)
{
var allMaps=new Array();
for(i=0;i<that.files.length;i++)
{
var data = new FileReader()
data.readAsText(that.files[i]);
data.onload = function (event)
{
var input=event.target.result;
input=input.replace(/,/g," ");
input=input.replace(/\u0009/g," ");
input=input.replace(/(\r\n|\n|\r)/g," ");
input=input.replace(/ /g," ");
input=input.replace(/ /g," ");
allMaps[i]=input.split(" ");
allMaps[i].splice(0,19);
document.getElementById("writer").innerHTML+="<br>"+allMaps[i];
}
document.getElementById("writer2").innerHTML+="<br>"+allMaps[i];
}
}
}
동기 vs 비동기에 대한 문제점이 있습니다. 'writer2'에 쓸 코드는 파일이로드되기 전에'writer'에 쓸 코드가 실행되기 전에 실행됩니다. –