TIL # 2021.12.21

kdobro_dev·2021년 12월 21일
0

TIL (Today I Learned)

목록 보기
24/56
post-thumbnail

Node.Js # Callback, Promise, Async Await

📝오늘 배운 내용

오늘은 node.js에서 자주 사용하는 callback, promise, async await에 대해 알아보려고 한다.

callback을 handling 하는것
callback을 인자로 받지 않고 new Promise라는 인스턴스를 생성하며 리턴

Promise의 3가지 상태(states)
Pending(대기) : 비동기 처리 로직이 아직 완료되지 않은 상태
Fulfiled(이행) : 비동기 처리가 완료되어 프로미스가 결과 값을 반환해준 상태
Rejected(실패) : 비동기 처리가 실패하거나 오류가 발생한 상태

resolve(), reject()를 인자로 받는데, 이 명령어들을 통해
resolve()로 값을 받으면 다음 액션을 실행하고, reject()로 값을 받으면 error handle 한다.
try, catch를 통해 error가 발생하는 경우 reject로 값을 받고 error handle 한다.
callback을 이용하는 것이 아니라 promise를 리턴해서 callback을 인자로 받지 않고
.then()을 이용해서 이어나갈수 있다. .then()에 callback 함수를 받고,
.then()을 사용하는 이유는 무한 callback을 만들고 싶지 않아서, .then으로 평평하게 코드를 짤수
있다. 만약 reject()에 해당하는 값을 받는다면, .then()이 아니라 .catch()로 이어나간다.

첫 작업이 끝나고 다음 작업을 .then()으로 이어서 할 수 있다.

하지만, Promise Hell이 또 등장하게된다.
async await은 node버전이 높으면 사용가능하다.
반드시 앞에 async라는 함수라고 작성해줘야한다.
awiat로 비동기적인 코드를 동기적인 코드로 쓸 수 있다.
promise처럼 동작을 하지만 await을 사용해서 비동기적으로 사용 할 수 있다.

async 이라고 함수 앞에 선언을 해주면 이 코드블럭이 자동으로 promise로 바뀐다.

profile
do your best at any moment

0개의 댓글