Promise 함수

Promise 함수

* 10월 21일자 스터디 발표 내용을 토대로 작성

1. 자바스크립트는 비동기 처리 방식을 채택하고 있다. 이는 자바스크립트가, 특정 코드의 연산이 끝날 때 까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행한다는 것이다.

이는 각 코드들의 실행되는 순간이 의도치 않고 꼬일 수 있다는 것을 의미하며, 이는 콜백 함수로 해결할 수 있다.

다만 콜백 함수의 경우에는 중첩이 잦아져 코드가 지저분해질 수 있고, 에러나 예외 처리가 힘들다는 단점이 있어 ES6에서는 promise 함수의 개념을 지원하게 되었다.

try { setTimeout(() => { throw 'Error!'; }, 1000); } catch (e) { console.log('에러를 캐치하지 못한다..'); console.log(e); }

위의 예시와 같이 콜백 함수는 중첩되는 구조 때문에 에러 처리가 힘들다.

//프로미스 생성 const promise1 = function(param){ return new Promise(function(resolve,reject){ if(param){ resolve("바보"); } else{ reject("아닌데"); } }); } //프로미스 실행 promise1(true).then(function(result){ console.log(result);//바보 },function(err){ console.log(err);//아닌데 });

실제 promise 생성과 실행은 다음과 같다.

비동기 메서드의 실행 메커니즘

from http://oaat9309.tistory.com/24 by ccl(A) rewrite - 2021-10-31 17:27:53