Async, await

서동혁·2021년 11월 23일
0

Javascript

목록 보기
14/19

프로미스를 좀 더 간결,간편 , 동기적으로 실행되는것 처럼 보이게 하는것

체이닝을 계속하면 코드가 난잡해지기 때문에 async, await을 사용

1.async

프로미스 체이닝을 간단하게 해준다.

before(promise)

after(async)

function앞에 async키워드를 쓰면 코드블럭이 자동으로 promise로 변환된다.

2.await

Async 가 붙어있는 function에서 쓸 수 있다

말 그대로 기대렸다가 실행하는것

위에서 사과, 바나나를 동시에 가져와보자!

이렇게 하면 콜백지옥처럼 될 수있다.

위에것을 await을 사용해보자!

await으로 멈추게한 다음에 마지막에 then을 붙혀 실행시킬수있다

4. await 병렬처리

위에 처럼하면 사과, 바나나 각각 1초로 딜레이를 주었기 때문에 총 2초가 걸려 비효율적이다.
그래서 각각 프로미스(프로미스는 만드는 순간 코드 블럭이 실행)를 만들어 병렬로 실행되게 하여 딜레이가 총 1초가 걸린다

에러 발생시키기
throw ‘error’ 로 에러를 발생시킬 수 있다

이렇게 에러가 발생하면 try, catch로 처리할 수 있다.

5.프로미스 api

Promise.all() 프로미스 배열을 전달하게 되면 모든 프로미스들이 병렬적으로 다 받을때 까지 모아주는 역할


위에 처럼 사용할 수 있지만 실제로 사용할 떄는 밑에 처럼 all을 사용한다

all안에 있는[ ]안에 있는 것들이 다 받아지면 다음걸 실행하게 할 수 있다.

Promise.race 는 배열안에서 가장 먼저 리턴되는 것부터 받는것

0개의 댓글