<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Callback HTML</title>
</head>
<body>
<script>
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( _ ); // 스크립트에 정의된 함수
// });
loadScript('11-1-0-callbacks.js', script => {
alert(`${script.src }가 로드되었습니다.`);
alert( sayPCY() ); // 스크립트에 정의된 함수
});
</script>
</body>
</html>
콜백
을 인수로 반드시 제공해야 함callback
의 첫 번째 인수는 에러를 위해 남겨둡니다. 에러가 발생하면 이 인수를 이용해 callback(err)
이 호출됩니다.callback(null, result1, result2...)
이 호출됩니다.비동기 함수는 자주 사용되며, 이를 load시 실행이 되더라도 어느 타이밍에 실행이 되어 완료가 됐는지 모를 수도 있다. 이것을 하기 위해 콜백이 존재한다.
현재, 내가 사용하는 실무 프로젝트에서도 비동기 함수가 많이 존재한다. 비록 내가 실무에서 사용해 본 적은 없다. 다른 실무자가 사용한 것을 참고해야 겠다.