개발자

js callback함수란?

2023년 10월 02일조회 69

fs.readFile(파일명,'utf8', function(err, data){}) 이런식의 비동기함수를 처리하는 callback함수가 있다고 할때 질문이 두가지가 있습니다. 1. 첫번째는 error고 두번째는 무조건 data가 오도록 한건 fs.readFile을 만든 개발자 마음인거죠? 이건 제가 변경할 수 없죠? 2. 위의 함수는 파일이 제대로 읽어질때까지(파일이 없다면 안읽어질때까지) 기다렸다가 callback 함수가 실행될텐데요. 대체 내부적으로 어떻게 구현이 되어있길래. 기다려주는건가요? 당연히 setTimeout을 쓰진 않겠지만, 내부적으로 setTimeout처럼 뭔가를 기다려주게 코드를 짜놓은건가요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

김인후님의 프로필 사진

1번은 맞습니다. 매개 변수명을 변경할 수는 있으나 첫번 째에 에러를 두번째에 결과값을 담는 것은 고정 입니다. 2번에서는 콜백 함수란 함수에 파라미터로 함수를 넘기는 겁니다. 즉 저희가 작성한 함수가 결과를 받아서 실행하는 것처럼 보이지만 정확하게는 받은 콜백 함수를 fs.reasFile에서 자기 로직이 끝나면 에러가 났을 경우 받은 함수 첫번째 파라미타로 에러를, 에러가 안 나오면 결과값을 두번째로 넘겨서 받은 콜백 함수를 실행 시키는 겁니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!