(javascript) Promise
Promise
자바스크립트 Promise 에 대해 공부해보자.
Promise란
Promise는 자바스크립트에서 비동기 작업을 수행하기 위해 사용된다.
Promise 사용하기
Promise의 구문은 아래와 같다.
new Promise(function(resolve, reject) { ... })
Promise 생성자는 resolve
,reject
두가지 함수를 매개 변수로 가지는 함수를 인자로 받는다. 비동기 작업이 성공적으로 완료되었다면 결과값이 반환되고 resolve
함수가 호출된다. 작업이 실패했을때는 reject
가 호출되어 오류를 반환한다.
간단한 예제로 살펴보자.
resolve
function myFunc() {
return promise = new Promise(function (resolve, reject) {
resolve('Hello')
})
}
myFunc()
.then(function(res) {
console.log(res)
}) // Hello
myFunc
함수는 promise 객체를 리턴한다. resolve
함수가 호출되었으므로 결과값인 'Hello'
이 반환된다. 결과값은 then
메소드 내의 res
로 전달되어 Hello 가 출력된다.
작업이 성공적일때는, resolve
함수가 호출되며, 결과값을 리턴받는다. then
메소드를 통해 결과값을 받아 처리할 수 있다.
reject
function myFunc() {
return promise = new Promise(function (resolve, reject) {
reject(new Error('There is an Error'))
})
}
myFunc()
.then().catch(function(err) {
console.log(err)
}) // Error: There is an Error
myFunc
함수는 promise 객체를 리턴한다. reject
함수가 호출되었으므로 Error
객체가 반환된다. 반환된 오류 객체는 catch
메소드 내의 err
로 전달되어 Error 가 출력된다.
작업이 실패했을때는, reject
함수가 호출되며, 오류 객체를 리턴받는다. catch
메소드를 통해 오류 객체를 받아 오류를 출력한다.