본문 바로가기
📙 자바스크립트 공부

[js] async와 await 제대로 알고 있었늬!?

by 따따시 2023. 1. 2.

 

async를 요러케 작성해서 쓸 수 있는데, 요렇게 쓸 경우 getApple과 getBanana가 순차적으로 (1초 +1초)로 실행이 된다.

 

 

1초 끝나고, 1초 기다려가 아니라

동시에 getApple과 getBanana가 실행되게 하려면 아래와 같이 수정하기

 

 

 

Promise.all을 이용하면

 

동기와 비동기의 차이가 뭔지 아늬?!

- 동기 : 모든 일의 진행이 순서대로 일어남
- 비동기 :  비동기 함수의 경우 비동기 함수를 호출한 스레드에서 해당 함수 호출에 대한 결과를 기다리지 않고 바로 다음 작업을 수행할 수 있는 것

 

async와 await는 붙어 다니는데,  async가 비동기고 await가 단어 그대로 기다린다 라는 뜻이고 await의 주체가 되는 함수에 async를 붙여줘야 한다. 

 

await 함수들이 끝나고나서야 async가 Return이 되는 것


- 일의 순서를 정해주기 위해서 쓸수잇는 방법이 await

await가 실행이 다 되고나서야 아래 함수들이 실행되라!! 라고 await를 쓰는 것
저게 끝낫다면, 다음줄로  넘어가라라고 하는것

await axios.get은 promise 객체를 토해내는데,  비동기통신의 return값은 promise '객체'다
객체는 항상 Key, value가 있는데 promise는 객체이다.

 

promise도 .해서 접근할 수 잇는데, 그 중 하나가 then이 있다. ~~.then (await가 끝나면 그 뒤에 수행되어라)
axios.get("").then().catch().finally(성공햇거나실패햇거나무조건들어와라)
랑 await axios.get이랑 같은 의미인것!!

댓글