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안의 값을 뜻 한다.