Callback function - MDN Web Docs Glossary: Definitions of Web-related terms | MDN

콜백

콜백 함수의 정의

문제 상황 ~ 비동기 동작을 처리하지 못하는 경우

function loadScript(src) {
  // <script> 태그를 만들고 페이지에 태그를 추가합니다.
  // 태그가 페이지에 추가되면 src에 있는 스크립트를 로딩하고 실행합니다.
  let script = document.createElement('script');
  script.src = src;
  document.head.append(script);
}
loadScript('/my/script.js'); // script.js엔 "function newFunction() {…}"이 있습니다.

newFunction(); // 함수가 존재하지 않는다는 에러가 발생합니다!

콜백으로 해결

실제로 작동하는 외부 스크립트 로딩 예시

function loadScript(src, callback) {
  let script = document.createElement('script');
  script.src = src;
  script.onload = () => callback(**script**); // 이번에는 인자를 받는 모습
  document.head.append(script);
}

loadScript('<https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.2.0/lodash.js>', 
	**script** => {
	  alert(`${script.src}가 로드되었습니다.`);
	  alert( _ ); // 스크립트에 정의된 함수
});

에러 핸들링