본문 바로가기
Javascript

Javascript - Async/Await

by DGK 2021. 10. 1.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

Async/Await

 

  • Async/Await 이란?
Async/Await은 비동기 처리의 문제에 사용되며, Promise와 기능은 유사하지만 더욱 편리하다.

<기본 개념>
//Async·Await VS Promise

//Promise 기능을 사용하는 경우

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    
  <script>
//mock Server 사용
//axios 오픈소스 라이브러리 사용(클라이언트와 서버간의 데이터 통신을 도와주는 라이브러리)
              
              
  var url = "https://f65825be-630b-4e6b-8528-00de15d3e1bd.mock.pstmn.io/list";
        
  function getData(){		//Promise 사용
  
  return new Promise(function(resolve, reject){   
  axios.get(url).then(function(response){
  console.log(response.data);
  resolve(response.data);
  });
  });

  }


  var total = 0;

  getData().then(function(data){
  
  for(var Tage of data){
  total += Tage.age;
  }
  console.log(total);		
  
  });


  </script>
</body>
</html>



//Async·Await 기능을 사용하는 경우

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
    
  <script>

  var url = "https://f65825be-630b-4e6b-8528-00de15d3e1bd.mock.pstmn.io/list";
        
  async function getData2(){		//Async·Await 사용
  return (await axios.get(url)).data;   //Promise 보다 더욱 간결한 code    
  };

  //await axios.get(url) 코드는 url로부터 받아오는 데이터를 기다리겠다는 의미이며,
  //return (await axios.get(url)).data; 코드는 이렇게 받아온 data를 리턴
  //하겠다는 의미이다.

  async function calculateSum(){ //Async·Await 기능 동작을 위한 임의의 함수

  var data = await getData2();	 //변수 선언 시 함수명 앞에 await 필요       

  var total = 0;
  for(var Tage of data){
  total += Tage.age;
  }

  console.log(total);
  }


  calculateSum();		 //이 함수명 앞에는 await 필요X            


  //정리
  
  //Async·Await 기능은 async function 안에서만 유효하기 때문에,
  //async function calculateSum( )의 함수를 임의로 만들어 준 것이다.
  
  //Async·Await 기능을 사용하려면 변수로 함수를 선언할 경우,
  //함수명 앞에 반드시 await을 붙여줘야 한다.
  
  //그 이유는 getData2 함수 안에 데이터를 불러오는 코드가 있기 때문이며,
  //await을 붙이는 것은 데이터를 불러오는 시간을 기다리겠다는 의미이다.
  
  //만약 어떤 함수안에 데이터를 불러오는 코드가 없는 경우라면,
  //해당 함수명 앞에는 await을 함께 쓸 필요가 없다.
  
  </script>
</body>
</html>

 

'Javascript' 카테고리의 다른 글

Javascript - 클래스(Class)  (0) 2021.10.01
Javascript - 모듈(Module)  (0) 2021.10.01
Javascript - Promise  (0) 2021.10.01
Javascript - Array Destructuring  (0) 2021.09.30
Javascript - Object Destructuring  (0) 2021.09.30

댓글