1. Promise
- 자바스크립트 비동기 처리에 사용되는 객체
- 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용
2. Promise의 장점
- 비동기 처리 시점을 명확하게 표현 가능
- 연속된(콜백지옥) 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연함
- 코드의 유지 보수성이 증가
3. 기본형태

promise는 resolve와 reject라는 콜백함수를 파라미터(매개변수)로 받아 사용하게 되는데 이름이 꼭 저것일 필요는 없다.
resovle 는 성공했을때, reject는 실패 했을때 값을 반환 하게 된다.

3-1 리턴받은 객체
3-1-1. .then() 정상적으로 값이 resolve 되었을때 실행 됨
3-1-2. .catch() 값이 실패되어 reject가 반환되었을때 실행하게 됨, 그러나 catch보다 밑에 있는 .then의 경우 실행이 된다.
3-1-3. .finally() 성공유무와 관계없이 무조건 실행하게 됨
4. 예시 및 설명

runInDelay(seconds) 함수를 만들어서 promise를 화살표 함수로 실행하고
if문을 이용하여 seconds의 값이 없거나(false), 0보다 작으면 reject를 실행하여 에러를 발생하게 하였다.
그후 (return은 생략이 가능) setTimeout()함수를 이용하여 입력한 seconds(밀리초) * 1000 = 입력한 숫자=초
후에 resolve를 시켜줌
runInDelay(0.1) => 0.1(밀리초) 이지만 위의 함수에서 *1000을 해주어 0.1초 뒤에 실행하겠다는 뜻
.then 정상적으로 resolve가 되면 '타이머가 완료되었습니다'를 콘솔로 출력
.catch 레어가 나면 에러값('seconds가 0보다 작다!')을 출력
.fainally 무조건 출력

에러가 나지 않아 then의 값이 출력된 모습.

프로미스는 값이 자동으로 리턴되어서 이런식으로 함수만 넣어서 콜백함수에도 사용 가능하다.
'JavaScript' 카테고리의 다른 글
| JavaScript - async / await (0) | 2023.04.13 |
|---|---|
| JavaScript - 옵셔널 체이닝 (0) | 2023.04.12 |
| JavaScript - 예외 처리 (0) | 2023.04.12 |
| JavaScript - 주석 (0) | 2023.04.12 |
| JavaScript - Map (0) | 2023.04.12 |


















































