2014-11-30 4 views
0

나는 CSV 파일을 구문 분석하기 위해 Papa Parse를 사용하고 있습니다. "complete"에서 나는 Papa Parse의 parse 함수 호출 외에서 선언 한 변수에 결과 배열 인 객체의 배열을 할당하려고합니다. 변수는 함수 내부에서는 괜찮지 만 외부에서는 정의되지 않았습니다. 나는 문자열과 정수로 이것을 시도했지만 변수는 여전히 함수 밖에서 정의되지 않았다. 파일을 구문 분석 파파 분석 사용하기 왜 파싱 된 데이터를 참조 할 수 없습니까?

답변

0

var data; 
 
for (var i = 0, f; f = files[i]; i++) { 
 
    if (f.type == 'application/csv' || f.type == 'application/vnd.ms-excel' || f.type == 'text/csv') { 
 

 
     Papa.parse(f, { 
 
      header: true, 
 
      dynamicTyping: false, 
 
      complete: function(results) { 
 
       console.log("Completed parsing results", results); 
 
       data = results.data.slice(0); //I tried other simple values here, such as "test" 
 
       console.log("Data after assigned value.", data); //Here the data is correctly assigned to the variable 
 

 
      } 
 
     }); 
 

 
     console.log("Value of data outside function.", data); //Undefined?? 
 
    } 
 
}

은 마지막을 console.log 라인이 어떤 결과를하지 않는 이유입니다 비동기이다 : 그것은 전에 구문 분석이 완료 실행합니다. 결과 처리는 complete 콜백 내부 또는 이후에 이루어져야합니다.

+0

감사합니다. 내가 따라 왔던 예제는 그렇게하지 않았지만 어쨌든 결과와 아무런 관련이 없다고 생각합니다. – maddmenz