JAVA SCRIPT
[Javascript] Promise ( then, catch, finally )
혀누쓰0
2022. 6. 19. 12:04
promise는 비동기 처리하는 방법중 하나다.
promise의 장점으로는 콜백함수는 가독성이 매우 떨어지는 반면
promise를 사용하면 가독성을 높일 수 있다.
resolve, reject를 매개변수로 받아서 성공할때와 실패할때를 나눌 수 있다.
const count = 1;
const a = new Promise( (resolve, reject) =>{
if( count == 1 ){
resolve() // 성공 했을때 ( then )
}
else if( count != 1 ){
reject() // 실패 했을때 ( catch )
}
})
then, catch안에는 콜백 함수가 들어간다.
resolve()는 성공했을때 then안의 콜백 함수를 실행한다
reject()는 실패했을때그 catch안의 콜백 함수를 실행한다.
finally()는 성공하든 실패하든 실행한다
then, catch, finally
a
.then( () => console.log( '성공' ) )
.catch( () => console.log( '실패') )
.finally( () => console.log('끝') )
// 성공
// 끝
위에서 1 == 1 은 true이기 때문에 if문 안의 resolve()를 실행 > then안의 코드 실행 > 콘솔창에 성공 출력
그 후 finally 코드 실행 성공, 끝 순차적으로 실행됨.
resolve, reject안에 인자를 받아 then, catch 매개변수로 받아 올 수 있다.
const count = 1;
const a = new Promise( (resolve, reject) =>{
if(count == 1){
resolve(10)
}
else if(count != 1){
reject(-10)
}
})
a
.then( (count) => console.log( count ) )
.catch( (count) => console.log( count ) )
.finally( () => console.log('끝') )
resolve안에는 10 이라는 인자 , reject안에는 -10 이라는 인자를 가지고 있다.
then에서의 매개변수는 resolve안의 값을 뜻 한다.
catch에서의 매개변수는 reject안의 값을 뜻 한다.