Promise의 정의
비동기 처리를 실행하고 그 처리가 끝난 후에 다음 처리를 실행하기 위한 용도로 사용한다.
Promise 객체를 생성하기 위한 코드는 다음과 같다.
var promise = new Promise(function(resolve,reject) {...})
resolve : 함수 안의 처리가 끝났을 때 호출해야 하는 콜백함수
reject : 함수 안의 처리가 실패했을 때 호출해야 하는 콜백함수
promise.then(onFullFilled)
onFullFilled(성공 콜백 함수) : Promise 안의 처리가 정상적으로 끝났을 때 호출되는 함수
var promise = new Promise(function(resolve,reject) {
setTimeout(function() {
var name = prompt("이름을 입력하십시오")
resolve(name)
},1000)
})
promise.then(function(name) {
console.log("안녕하세요,"+name+" 님!")
})
promise.catch(onRejected)
onRejected(실패 콜백 함수) : Promise 안의 처리가 실패로 끝났을 때 호출되는 함수
var promise = new Promise(function(resolve,reject) {
setTimeout(function() {
var n = parseInt(prompt("10미만의 숫자를 입력하십시오"))
if( n <= 10){
resolve(n)
}
else {
reject(`오류: ${n}은 10 이상입니다.`)
}
},1000)
})
promise
.then(function(num) {
console.log(`입력받은 숫자: ${num}`)
})
.catch(function(error) {
console.log(error)
})