Promise의 기본개념?
- 주로 비동기 작업을 처리하는 데 사용된다.
- 비동기 작업의 완료 또는 실패를 처리하기 위해 사용된다.
- 비동기 작업이 끝난 이후에 실행될 콜백을 등록할 수 있는 메서드를 제공한다. (.then, .catch 등)
Promise는 어디서 활용할까?
- API호출, 데이터 가져오기, 파일 읽기 등 여러 비동기 작업을 할 때 Promise를 활용
- 비동기 처리: Promise는 비동기 작업(API호출)의 결과를 처리하기 위해 사용된다.
Promise의 세가지 상태는 무엇일까?
- 대기(Pending): 초기상태
- 이행(Fulfilled): 작업이 성공적으로 완료된 상태
- 거부(Rejected): 작업이 실패한 상태
then과 catch는 무엇인가?
- then(): promise가 성공적으로 완료된 후 실행되는 콜백 함수를 정의
- catch(): Promise가 실패된 후 실행되는 콜백 함수를 정의
then과 catch를 통해서 무엇을 할 수 있나?
- then과 catch를 이용하여 API호출 중 발새할 수 있는 오류를 처리한다.
Promise는 동기일까 비동기일까?
Promise작업이 완료가 되면?
- 비동기 작업이 완료되면 Promise는 해결(resolved) 되거나 거부(rejected)된다.
P Promise를 사용하면 좋은 점
- Promise를 사용하면 비동기 작업의 결과를 나중에 처리할 수 있다- - 코드의 가독성을 높이고 에러 처리를 쉽게 할 수 있다.
- .then이나 .catch를 이용하여 비동기적으로 동작하는 것을 순차적으로(동기적으로) 실행시킬 수 있다.
Promise를 사용하여 순차적으로 처리하는 방법
Promise를 사용하여 병렬적으로 처리하는 방법
- 병렬 처리를 하고 싶으면 Promise.all 메서드를 사용하여 병렬적으로 처리
Promise.all은 무엇을 리턴하는가?
- Promise.all이 리턴하는것도 Promise
Promise.all은 .then을 사용할 수 있나?
- Promise.all이 리턴하는 것도 Promise다
때문에 .then을 사용할 수 있다.
fetch는 동기인가 비동기인가?
- fetch는 반드시 비동기적으로 동작할 수 밖에 없다.
Executor함수?
- JavScript의 Promise객체를 생성할 때 사용하는 함수
- 이 함수는 Promise생성자에 전달되며, 두 개의 매개변수인 resolve와 reject를 받는다.
Promise객체를 생성하는 방법 두 가지
1. Promise생성자를 사용하는 방법
- Promise생성자는 비동기 작업을 수행할 때 사용된다.
- 생성자를 사용하여 Promise객체를 만들 떄는 excutor함수를 제공해야한다.

2. Promise를 반환하는 함수 사용
그 함수가 Promise객체를 반환하도록 설계된다.
Promise생성자를 직접 사용하지 않고도 Promise를 사용할 수 있다.
