콜백
const DB = [];
function register(user) {
// 콜백이 3중으로 중첩된 함수
return saveDB(user, function (user) {
//콜백
return sendEmail(user, function (user) {
//콜백
return getResult(user); //콜백
});
});
}
// DB저장후 콜백 실행
function saveDB(user, callback) {
DB.push(user);
console.log(`save ${user.name}`);
return callback(user);
}
//이메일 발송 로그만 남기는 코드 실행 후 콜백 실행
function sendEmail(user, callback) {
console.log(`email to ${user.email}`);
return callback(user);
}
// 결과를 반환
function getResult(user) {
return `success register ${user.name}`;
}
const result = register({ email: "aa@aa", password: "1234", name: "kim" });
console.log(result);
1.register()함수는 2.saveDB(),3.sendEmail(), 4.getResult() 함수를 각각 차례로 호출해 콜백을 사용했다.
register() -> saveDB() ->sendEmail() -> getResult() 차례로 함수가 실행된다
10단계 20단계이면 너무 복잡해진다 이를 해결하기위해 Promise가 나왔다.