
- 비동기 처리를 위해 사용하는 자바스크립트 내장 객체이다.
- 객체로써 언젠가 완료될 일을 나타낸다.
- 완료되면 정상적인 값 또는 실패의 이유를 반환한다.

- 생성함수의 매개변수
answer는Promise에 대한 성공, 실패를 결정한다.Promise는 매개변수로resolve와reject를 가진다resolve는 약속을 성공시킬 수 있는 함수로 호출 시 결과를 인자로 전달한다.reject는 실패 처리를 위한 함수로 호출 시 실패 이유를 인자로 전달한다.
Promise 객체 생성 함수
promiseA객체는resolve되어 '시청하겠습니다' 라는 결과값이 전달된다.promiseB객체는reject되어 '시간이 안돼요' 라는 거절의 이유가 전달된다.catch메소드에reject시 호출될 함수를 등록하는데then메소드의 두번째 인자로reject시 호출될 함수를 전달하면 먼저 호출되어catch메소드로 등록된 함수는 무시된다.
async 함수는 await 구문과 함께 비동기 작업을 제어한다.await 키워드는 반드시 async 함수 안에서만 유효하다.await 키워드가 있는 비동기 함수는 이벤트 루프를 통해 비동기로 작업을 처리한다.async 함수는 이러한 비동기 작업이 완료될 때까지 일시 중지 상태로 비동기 작업의 해결을 기다린다.async 함수가 다시 실행되고 함수 결과를 반환한다.Promise 객체 생성 함수

setTimeout함수로 2초 뒤에 로직 처리를 약속한다.person객체의energy속성을 기준으로 50을 넘으면resolve함수를 실행하고 그렇지 않으면reject함수를 실행한다.
async 함수 표현식으로 정의

- 비동기 처리되는
doWork함수를 연속으로 호출한다.await키워드를 추가하여 비동기 작업의 순서를 보장한다.- 정리, 청소 순서로
resolve인자로 전달된 함수가 호출되다가 심부름에서personA객체의energy속성의 값이 50보다 작아reject인자로 전달된 함수가 호출되어error를 반환한다.