드림코딩 - 자바스크립트 12. 프로미스 개념부터 활용까지 JavaScript Promise
자바스크립트 12. 프로미스 개념부터 활용까지 JavaScript Promise
Promise: JS에서 제공하는, 비동기를 간편하게 처리할 수 있도록 도와주는 오브젝트
정해진 장시간의 기능을 수행하고나서
정상적으로 기능이 수행되었다면 성공의 메세지와 함께 처리된 결과값을 전달해주고
기능을 수행하다가 예상치 못 한 에러가 발생했다면 에러를 전달해줌
콜백을 쓰지 않고 프로미스를 쓰면서 비동기 코드를 깔끔하게 처리할 수 있는지 배울거임
프로미스는 JS에 내장되어있는 오브젝트이고 비동기적인 것을 수행할 때 콜백함수 대신에서 유용하게 쓸 수 있음
중요한 포인트 2가지
1. state 상태
프로세스가 오퍼레이션을 수행하는 중인지(pending)
기능 수행이 완료되었는지 성공인지(fulfilled) 실패인지(rejected) 상태에 대해 이해하는 것이 중요하고,
2. 프로듀셔/컨슈머의 차이점
우리가 원하는 데이터를 제공하는 사람/제공된 데이터를 소비하는 사람 두 차이점을 잘 이해해야 함
https://ko.javascript.info/promise-basics
프라미스
ko.javascript.info
1. promise 만들기
프로미스는 클래스이기 때문에 뉴라는 키워드로 오브젝트 생성함.
프로미스는 executor라는 콜백함수를 전달해줘야하고
이 콜백은 또 두가지의 콜백함수를 받음(resolve, reject)
기능이 성공적으로 수행됨 - resolve,
에러발생 - reject
그런데 문제는 프로미스를 만드는 순간 우리가 전달한 콜백함수가 바로 실행됨.
사용자가 요구하지 않은 불필요한 네트워크 통신이 발생할 수 있다는 문제.
2. promise 사용하기
- then : 성공/실패 두 경우를 다룸
프로미스가 정상작으로 잘 수행되어서 마지막에 resolve라는 콜백함수를 통해 전달한 값이 value 의 파라미터로 전달됨