프로미스는 비동기함수의 콜백지옥을 해결하기 위해 등장했다. 함수 안에 수많은 중첩 함수들을 알아보기 쉽게 정리할 수 있다. 네트워크를 읽는다던지 파일을 불러오는 데 적합하다.
let promise = new Promise(function(resolve, reject) {
executor 콜백 함수
});
promise.then(
function(result) { /* 결과(result)를 다룹니다 */ },
function(error) { /* 에러(error)를 다룹니다 */ }
);
작업이 성공했을 때의 여부를 다룬다. 위의 코드에서 resolve되었다면 첫번째 함수를, reject 되었다면 두번째 함수를 실행시킨다.
promise
.then(function(value) {...},)
.then(function(value) {...},)
...
.catch(function(err) {...},)
then이 여러 번 쓰여 많은 갈래가 만들어졌다면, 마지막에 catch 구문을 하나 쓰는 것으로 에러를 잡을 수 있다.
참고 자료
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://ko.javascript.info/promise-basics
https://www.youtube.com/watch?v=JB_yU6Oe2eE&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=12