ES6(ECMAScript 2015) – async/await – 1 – await 키워드

ES6(ECMAScript 2015) - 객체 리터럴 확장 - 2 - 프로토타입 축약
ES6(ECMAScript 2015) – async/await – 1 – await 키워드

ES6(ECMAScript 2015) – async/await – 1 – await 키워드

소제목: await 키워드란?

ES6(ECMAScript 2015)에서 도입된 async/await는 비동기적인 코드를 작성하는 데 도움이 되는 키워드입니다. await 키워드는 비동기 함수 내에서 사용되며, Promise 객체를 반환하는 비동기 작업이 완료될 때까지 코드 실행을 일시 정지시킵니다. 이를 통해 비동기 작업의 결과를 동기적인 방식으로 다룰 수 있게 됩니다.

예시:

async function fetchData() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  console.log(data);
}

fetchData();

비유적인 표현으로 이해하기

await 키워드는 마치 전화를 걸고 상대방이 전화를 받을 때까지 기다리는 것과 비슷합니다. 비동기 작업을 수행하는 동안 await 키워드를 만나면, 자바스크립트는 그 자리에서 코드 실행을 멈추고, 비동기 작업의 결과가 반환될 때까지 기다립니다. 마치 상대방이 전화를 받을 때까지 아무런 다른 작업을 하지 않는 것과 비슷하죠. 그리고 비동기 작업이 완료되면, 결과를 받아온 뒤 코드 실행을 계속 진행합니다.

await 키워드의 동작 과정

  1. await 키워드를 만나면, 뒤에 오는 비동기 작업(Promise 객체)을 실행합니다.
  2. 실행된 비동기 작업이 완료되기를 기다립니다. 이때, await 키워드를 만난 코드 라인에서 코드 실행이 멈춥니다.
  3. 비동기 작업이 완료되면, Promise가 처리(resolve)되면서 결과 값을 반환합니다.
  4. await 키워드가 반환된 결과 값을 변수에 할당하거나, 다른 처리를 위해 사용합니다.
  5. 코드 실행은 await 키워드 다음 라인부터 이어서 진행됩니다.

주의해야 할 점

  • await 키워드는 async 함수 내에서만 사용할 수 있습니다.
  • await 키워드를 사용하는 함수는 해당 함수가 반환하는 값이 Promise 객체임을 나타내는 async 키워드로 선언되어야 합니다.
  • await 키워드를 사용하는 비동기 작업은 Promise를 반환하는 비동기 함수, fetch API 호출, XMLHttpRequest 요청 등이 될 수 있습니다.
  • await 키워드는 오직 비동기 작업이 완료될 때까지 기다리는 데에만 사용되며, 동기 작업에서 사용할 수 없습니다.

여기서는 await 키워드에 대해 소개하였으니, 다음에는 async 함수와 함께 사용되는 await 키워드의 실제 활용 예시와 함께 더 자세한 내용을 알아보도록 하겠습니다.

답글 남기기