JS에서 비동기를 처리하는 방식은 크게 3가지 경우로 볼 수 있다.
function getDB(callback) {
// 데이터베이스로부터 3초 후에 데이터 값을 받아온 후, 콜백 함수 호출
setTimeout(() => {
const value = 100;
callback(value);
}, 3000);
}
function main() {
// 호출할 작업에 콜백 함수를 넘긴다
getDB(function(value) {
let data = value * 2;
console.log('data의 값 : ', data);
});
}
main();

function getDB() {
return new Promise((resolve,reject) => {
if(성공시){
resolve('성공시 반환값')
} else{
reject('에러값')
}
});
}
function main() {
getDB()
.then((value) =>
console.log('data의 값 : ', value);
})
.catch((error) => {
console.error(error);
});
.finally(() => {
console.log('성공하든 실패하는 무조건 실행')
})
}
main();
.then() 을 통해 비동기 작업의 개수가 많아진다 하더라도 콜백함수를 사용하는 방식의 코드보다는 코드의 깊이가 길어지지 않음