Node.js / 02 / async & await + Promise ☘️

DOMADO·2024년 7월 10일
0

Node.js

목록 보기
7/12

☘️ async & await

  • Promise를 조금 더 간편하고 동기적으로 실행되는 것 처럼 만들어 준다.
  • 기존에 존재하는 Promise 위에 좀 더 편리한 기능 제공
    = syntactic sugar
 [용어 📖]
 
 프로그래밍 언어에서 특정 기능이나 개념을
 더 쉽게 읽고 쓸 수 있도록 제공하는 문법적 편의 기능
 (예 : class )
 
 : syntactic sugar

[ Q ] 그럼, Promise는 별로고, async & await이 더 좋나요 !? 
[ A ] ㄴㄴ, 상황에 따라 다름 (경험해보면서 느끼시길..)

✅ Promise의 경우, 로직


✅ async & await 의 경우, 로직

- 짱 편하다 ^^ ! ...☆


getApple() 함수 작동 완료 까지 기다렸다가 -> apple 상수에 할당
getBanana() 함수 작동 완료 까지 기다렸다가 -> banana 상수에 할당

[❓] 그냥 const apple = getApple( ) ; 안 되나?

[👩‍🏫] getApple( ) ; 함수는, await delay 3초를 기다린다고 위에 있음

await이 없을 경우,
async 선언시 -> promise로 변환 -> promise 엑시큐터 바로 실행
-> 3초 이전에 이미 실행 되면서, 값이 없음 , Promise 객체 반환
-> [object Promise]로 출력

Promise.all ( [ ] )

  • 여러 Promise들을, 병렬적으로 동시에 작업을 수행하는 경우

  • Promise 배열을 전달하면 -> 모든 Promise 들을 병렬적으로 모은 후 실행

  • 하나의 Promise를 반환하며, 그 하나의 Promise는 모든 개별 Promise의 결과를 배열로 반환


병렬적으로 Promise를 실행할 경우,
위처럼 복잡하게 안 하고,
Promise.all ( [promise 객체] ) API 로 간단하게 표현 가능 !


🔵 배열 안에 모든 Promise 들을 모은 후
-> 다 될때까지 대기
-> 다 되면 하나의 Promise로 반환
-> 그 하나의 Promise는 모든 개별 Promise 값을 배열로 가지고 있음 


Promise.race ( [ ] )

  • 여러 Promise들 중 가장 먼저 받아오는 하나의 Promise만 가지고 올 때
  • Promise 배열을 전달하면 -> 가장 먼저 리턴 한 Promise 하나만 값을 가져옴

profile
▪️ 검정 테마를 기준으로 작성되었읍니다.

0개의 댓글