callback

GW·2024년 7월 11일

콜백

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가 나왔다.

0개의 댓글