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이랑 같은 의미인것!!
'📙 자바스크립트 공부' 카테고리의 다른 글
[js] 프로토타입이란? / 프로토타입 체인 (0) | 2023.01.15 |
---|---|
[js] 클래스 개념 이해하기 (1) | 2023.01.15 |
리액트는 왜 쓰며, 리액트와 vue와 angular의 차이 (0) | 2022.12.20 |
구조분해할당과 Named export와 default export의 차이 (0) | 2022.12.20 |
배열과 객체타입(Object) 메소드 복습하깅 (0) | 2022.12.18 |
댓글