ES6 Promise

정중식·2023년 3월 14일
0

자바스크립트

목록 보기
16/20

Promise의 특징

1. new Promise()로 생성된 변수를 콘솔창에 출력하면 현재 상태를 알 수 있다.

  • 성공/실패 판정 전에는 <pending>이라고 나오며,
  • 성공 후엔 <rsolved>, 실패 후엔 <rejected>가 나온다.
  • 성공을 실패나 대기상태로 다시 되돌릴 순 없다.

2. Promise는 동기를 비동기로 만들어주는 코드가 아니다.

  • Promise는 비동기적 실행과 전혀 상관이 없다.
  • 일종의 디자인 패턴일 뿐이다.
  • Ex) 10초 걸리는 연산을 해결될 때 까지 Queue(대기실)에 제겨뚜는거 아님

Promise 사용해보기

var 프로미스 = new Promise();

프로미스.then(function(){
	
}).catch(function(){

});
  • 프로미스 안의 코드가 실행이 완료가되면 then()함수 내의 코드를 실행시켜준다.
  • 코드가 실패했을 경우엔 catch() 함수 내의 코드를 실행시켜준다.

예시1

var 프로미스 = new Promise(function(성공, 실패){
	var 어려운연산 = 1 + 1;
	성공();
});

프로미스.then(function(){
console.log('연산이 성공했습니다')
}).catch(function(){

});
  • 프로미스 내의 1+1 이라는 어려운연산이 완료되면 성공() 판정을 내리고,

  • 성공시 then()내의 코드를 싱행해준다.

  • 연산결과를 then 안에서 활용하고싶으면 성공(); 함수 파라미터로 값을 넣어주면 된다.

    var 프로미스 = new Promise(function(성공, 실패){
    	var 어려운연산 = 1 + 1;
    	성공(어려운연산);
    });
    
    프로미스.then(function(결과){
       console.log('연산이 성공했습니다' + 결과)
    }).catch(function(){
       console.log('실패했습니다')
    });
profile
내 가치를 찾아서

0개의 댓글