- javascript에서 비동기 프로그래밍을 위해 사용되는 객체
- 지금은 사용할 수 없지만 후에 성공하거나 실패했을 때 값을 나타낸다.
비동기 작업
- 데이터를 가져오거나 파일 읽기, 이벤트 처리 등 시간이 걸리는 작업을 처리할 때 사용한다.
CallBack Hell 회피
- 중첩된 콜백 함수를 방지하여 코드를 더 읽기 쉽고 관리하기 쉽게 만든다.
CallBack Hell 이란?
- callback 함수안에, callback 함수안에, callback 함수안에... 안에... 안에...
- 아래 코드와 같이 들여쓰기가 계속되어 코드 읽기가 힘들다.const operation1(callback) { setTimeout(() => { // do Something callback() }, 1000) } const operation2(callback) { setTimeout(() => { // do Something callback() }, 1000) } const operation3(callback) { setTimeout(() => { // do Something callback() }, 1000) } operation1(() => { operation2(() => { operation3(() => { //... continue }) }) })
체이닝
- 여러 비동기 작업을 함께 연결할 수 있다.
에러 핸들링
- 에러 핸들링 기능이 내장되어 있어, 더 효과적으로 오류 관리를 제어할 수 있다.
// case 1.
const myPromise = new Promise((resolve, reject) => {
//비동기 작업 수행
//성공하면 resolve CALL
if(success){
resolve()
} else {
//실패하면 reject CALL
reject()
}
})
// case 2.
const myFunc = () => {
return new Promise((resolve, reject) => { // do Something })
}