[JavaScript] 자바스크립트 async/await 에 대해 알아보자

2024. 10. 14. 13:44·JavaScript

콜백함수를 좀더 깔끔하게 쓸려고 Promise가 나왔지만 이 역시 어려운 부분이 있다.

그래서 Promise보다 훨씬 쉽게 쓸 수 있는 ES8 문법이 나왔다.

’async, await’ 문법을 알아보자

 

 

async

async function returnPromise() {
    return '그냥 Promise 반환해줌';
}

 

위 코드처럼 async를 fuction 앞에 붙여주면

new Promise()를 사용한 복잡한 코드 없이도 저절로 Promise 객체가 생성이 된다.

위 함수의 return 값은 Promise의 resolve()처럼 작동되는 것이다.

 

async를 사용하여 Promise의 형식을 가지기 때문에

이 함수를 실행할 때 then()이나 catch()를 붙일 수도 있다.

async function returnProm() {
    return '그냥 Promise 반환해줌';
}

returnProm().then((r)=>{
	console.log(r) // '그냥 Promise 반환해줌' 출력.
})

 

 

 

await

 

그런데 then()도 귀찮고 어려우면

기능은 같지만 문법은 훨씬 간단한 await 키워드를 사용할 수 있다.

async function printProm(){
  var prom = new Promise((resolve, reject)=>{
    resolve('성공했어용');
  });
  
//  prom.then(function(result){
//	  console.log(result)
//  })
  
  var result = await prom;
  console.log(result); // '성공했어용' 출력
}
printProm(); 

 

awiat 키워드를 이용해서 Promise가 완료되면 결과를 변수에 담을 수 있는데

then() 보다 더 직관적으로 코드를 작성할 수 있게 된다.

 

그런데 await을 사용하면 catch()를 쓰지 않기 때문에

실패가 나오면 코드가 바로 멈춰버린다.

그래서 try/catch 구문을 이용해서 에러처리를 해줘야 한다.

async function printProm(){
  var prom = new Promise((resolve, reject)=>{
    resolve('성공했어용');
  });
  
  try {
	  var result = await prom;
	  console.log(result); // '성공했어용' 출력
	} catch {
		console.log('실패함')
	}
}
printProm(); 

 

try/catch 쓰면 더 복잡해 보이는데

Promise가 항상 성공이 나오면 굳이 안써도 된다.

'JavaScript' 카테고리의 다른 글

[JavaScript] 자바스크립트 Promise에 대해 알아보자  (3) 2024.10.13
[JavaScript] 자바스크립트 class 상속에 대해 알아보자 (+ extends/super)  (0) 2024.10.12
[JavaScript] 자바스크립트 "this"에 대해 알아보자  (0) 2024.10.08
[JavaScript] 서버에 Ajax 요청하기 (Axios 사용)  (2) 2024.08.19
[JavaScript] If문이 더러울땐 Switch  (0) 2024.08.10
'JavaScript' 카테고리의 다른 글
  • [JavaScript] 자바스크립트 Promise에 대해 알아보자
  • [JavaScript] 자바스크립트 class 상속에 대해 알아보자 (+ extends/super)
  • [JavaScript] 자바스크립트 "this"에 대해 알아보자
  • [JavaScript] 서버에 Ajax 요청하기 (Axios 사용)
freesqqq
freesqqq
Fear only God, Hate only sins
  • freesqqq
    999
    freesqqq
    • Life Log (39)
      • Coding Test (12)
      • JavaScript (6)
      • TypeScript (2)
      • React (4)
      • Vue (0)
      • Next.js (1)
      • Html & css (0)
      • Git & Github (0)
      • Noising Log (1)
      • Reading Log (8)
      • Projects 🚀 (5)
        • Goodiary (AI 일기 사이트) (0)
        • Readiping (독서 커뮤니티) (1)
        • Couchilla (음반 거래 플랫폼) (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바스크립트상속
    javascript
    프로그래머스
    크기가 작은 부분 문자열
    수파베이스
    자바스크립트
    자기계발
    프머스
    supabase
    유신론적실존주의
    코테
    Lv.1
    죽음에이르는병
    미루는습관
    대충만든자판
    js
    reduxtoolkit
    힘든일을먼저하라
    코딩테스트
    그릿
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
freesqqq
[JavaScript] 자바스크립트 async/await 에 대해 알아보자
상단으로

티스토리툴바