동시성
하나씩 처리하는것 ->동기
미뤄두고 다음일 처리하는것 ->비동기
1) 비동기 처리시, 처리 과정 :
콜스택 -> api ->콜백 큐-> 콜스택이 빈 경우(이벤트 루프가 확인 중) ->콜스택에 적재->
** 콜백이 중첩되면 관리하기 힘듬
promise
1) 비동기 연산이 종료된 이후 결과를 알기 위해 사용하는 객체.
- 장점: 비동기 처리 시점을 명확하게 표현할 수 있다.
- 사용: 인자를 2개 (resolve,reject)받는다.
->인자는 콜백 함수로 성공:resolve, 실패:reject 이다.
2) promise의 상태값
- pending:비동기 처리 수행 전
- fullfilled : 수행 성공
- rejected: 수행 실패 (reject호출 상태)
- settled : 성공 or 실패
const promise = new Promise((resolve,reject)=>{})
//후속 처리 메서드
promise.then(result=>{},err=>{})
async, await
1)es8 에서 도입됨.
- 사용:
-async: 비동기로 처리할 함수 앞에 붙여서 사용, 반환 값은 프로미스로 감싸서 변환해준다.
-await: async 함수 안에서만 동작한다. 프라미스가 처리 될 때 까지 기다렸다가 그 이후에 결과를 반환.