동기와 비동기

개발빼-엠·2023년 1월 27일
0

배움을 기록

목록 보기
1/47

동기(synchronously)와 비동기(asynchronously)

동기

blocking 요청에 대한 결과가 동시에 일어난다. 한 줄 씩 읽고 시작지점과 끝 지점이 같다.

비동기

non-blocking. 요청에 대한 결과가 동시에 일어나지 않는다.

promise

자바스크립트에서 제공하며 비동기를 간편하게 처리할 수 있게 도와준다.

promise를 실행하면 객체가 생성되고 객체의 키로는 3가지 상태값 pending, fulfilled, rejected가 있고, 값으로는 resolve라면 그 value가 담기고 reject라면 에러메세지가 출력된다.

.then : promise의 상태가 fulfilled일 때 실행된다.promise는 .then을 만나는 순간 비동기가 된다.

resolve

promise의 상태를 fulfilled로 변경하고 promise의 결과값을 resolve의 결과(인자)로 넘겨준다.

reject

promise의 상태를 reject로 변경하고 오류를 내뿜는다.

catch

promise의 상태가 reject일 때 실행된다.

await함수 뒤에 promise를 쓰면 promise를 리턴하지 않고 바로 결과를 리턴한다.

fulfilled상태가 되야 한다.

콜백함수로 비동기를 제어할 수 있다.

callback이 까다롭다보니 promise를 사용해 쉽고 빠르게 비동기 함수를 처리할 수 있고, promise도 promise hell에 빠질 수 있으므로 promise chaning을 적절히 사용하면 막을 수 있었다.

async/await을 사용해 promise를 조금 더 일반함수처럼 쓸 수 있게 된다.

0개의 댓글