프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인자로 넘겨주는 실행 가능한 함수를 말한다. 콜백을 넘겨받은 코드는 필요에 따라 이 함수를 곧바로 실행할 수도 있고, 나중에 실행할 수도 있다.
즉, 콜백함수는 나중에 호출되는 함수를 말합니다. 개인적으로 개념만을 두고 봤을 때는 '콜애프터'라는 명칭이 훨씬 잘 와닿는 것 같습니다.
// onclick에 button1_click함수는 브라우저의 javascript API에서 DOM 이벤트 핸들러에 전달(등록)된다.
// 클릭 이벤트가 발생했을 때 이벤트 핸들러가 콜백 함수를 호출한다.
<button id="button1" onclick="button1_click();">버튼1</button>
<script>
// [콜백 함수] button1_click
function button1_click() {
alert("버튼1을 누르셨습니다.");
}
</script>
이 글 한번 읽어보세요! 👉https://velog.io/@franchesca/%EB%B9%84%EB%8F%99%EA%B8%B0%EC%A0%81-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
// 콜백 함수
function slowAlert() {
console.log("That was really slow!");
}
console.log('we start here');
window.setTimeout(slowAlert, 2000);
console.log('we end here');
// [예상 결과]
// we start here
// That was really slow! --> 여기서 2초가 소요될 것으로 예상
// we end here
// [비동기적 프로그래밍 -- 실제 결과]
// we start here
// we end here
// That was really slow!
step1(function(value1) {
step2(value1, function(value2) {
step3(value2, function(value3) {
step4(value3, function(value4) {
step5(value4, function(value5) {
// value5를 사용하는 처리
});
});
});
});
});
참고: https://www.hanumoka.net/2018/10/24/javascript-20181024-javascript-callback/
예시 참조: https://poiemaweb.com/es6-promise
const promise1 = function(param){
return new Promise(function(resolve, reject){
if(param){
resolve("resolved");
}
else{
reject("error");
}
});
}
//프로미스 실행
promise1(true)
.then((result) => {
console.log(result);// "start" 출력
})
.catch((err) => {
console.error(err);// "end" 출력
});
(async (param) => {
const promise2 = new Promise((resolve, reject) => {
if (param) {
resolve('resolved');
} else {
reject('error');
}
});
try {
const result = await promise2(true);
console.log(result);
} catch (err) {
console.error(err);
}
})();