강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của justindev
justindev

câu hỏi đã được viết

JavaScript cốt lõi

화살표 함수 문의

Viết

·

362

0

화살표 함수 관련 문의 드립니다.

 

화살표 함수 내에 결과값은 배열로 응답이 오는데 화살표 함수 외부에 선언된 값은

배열로 응답이 오지 않습니다. 방법을 찾아보았는데 해결하지 못하여 문의  드립니다.

 

const ReadExcelSheet = async excelFile => {

const wb = new Excel.Workbook()

const reader = new FileReader()

 

let excelDataList = []

reader.readAsArrayBuffer(excelFile)

reader.onload = () => {

const buffer = reader.result

wb.xlsx.load(buffer).then(workbook => {

const sheet = workbook.getWorksheet(1)

 

let row_num = 13

sheet.eachRow((row, rowIndex) => {

let resultData = {}

resultData.title = row.getCell(3).text

excelDataList.push(resultData)

})

                        console.log(excelDataList);    //여기서는 배열로 로그에 남음

})

}

        console.log(excelDataList);    //여기서는 배열로 남지 않음

        return excelDataList

}

javascript

Câu trả lời 2

0

justindev님의 프로필 이미지
justindev
Người đặt câu hỏi

우선 저의 질문으로 언짢게 해드려서 죄송하며 강의와 관련되지 않은 부분에도 답변 주셔서 감사 드립니다.

다음부터는 질문시에 주의하도록 하겠습니다.

 

 

0

jaenam님의 프로필 이미지
jaenam
Người chia sẻ kiến thức

- 화살표함수는 본 강의에서 다루지 않는 내용입니다.
- 만족스러운 답변을 받으려면 최소한의 성의를 보여주세요. 코드를 알아볼 수 있게 인덴트 정도는 맞춰주십시오.

위 이유들로 인해 답변드리고 싶은 생각이 들지 않는데, 그럼에도 불구하고 답변을 드려 보겠습니다.
이런 식으로 강의와 무관한 내용을 최소한의 성의도 없이 무례하게 질문하시는 분들이 종종 계시는데 ,
강사 입장에서는 기분이 좋지 않을 수밖에 없다는 점 알아주시고 조심해 주시면 좋겠습니다.

코드를 살펴본 바, 화살표함수라서 문제가 아니라 콜백함수의 의미를 정확히 인지하지 못하고 계신 것 같습니다.
onload = () => { ... } 부분은 reader의 로딩이 완료된 시점에서야 비로소 호출되는 함수로 보이는데, 마지막줄에서의 excelDataList는 해당 콜백함수가 호출되기 전에 먼저 실행되어 버리므로, 배열 요소는 비어있는게 당연합니다.

Hình ảnh hồ sơ của justindev
justindev

câu hỏi đã được viết

Đặt câu hỏi