1. Promise
- es6에서 처음 도입되었습니다.
- 비동기 동작을 처리합니다.
- Promise는 클래스입니다.
- Promise 클래스를 인스턴스화 시켜서 객체를 만들어 사용합니다.
- 반환된 promise로 원하는 비동기 동작을 처리합니다.
- Promise는 ‘State’와 ‘resolve’, ‘reject’ 함수를 이해하면 됩니다.
2. Promise 구현하기
let promise = new Promise(function(resolve, reject) {
// 비동기 로직 내용
// api 호출
});
- resolve : 비동기 로직이 성공했을 때 실행할 함수
- reject : 비동기 로직이 실패했을 때 실행할 함수
3. resolve 이해하기
let promise = new Promise(function(resolve, reject) {
// 비동기 로직 내용
// api 호출
});
promise.then(function() {
//이 함수가 resolve입니다!
// 위 비동기 로직이 성공하면 이 함수가 호출됩니다!
}
});
4. reject 이해하기
let promise = new Promise(function(resolve, reject) {
});
promise.then(function() {//여기는 성공}, function() {//여기는 실패});
5. 주의
- reject와 resolve는 하나만 호출됩니다.
- resolve가 여러 개 있으면 맨 위에 것만 실행됩니다.
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
reject(1);
resolve(2);
resolve(3);
}, 1000);
});
promise.then(function(msg) {
console.log('resolve', msg);
}, function(msg) {
console.log('reject', msg);
});
Comments