logo

JEONGGON

    블로그
github
mode
목 차
down-arrow

JavaScript async, await

2023.03.09.

post-thumbnail

async & await

1. async와 await

  • 직관적으로 비동기를 처리할 수 있는 방법

1-1. async

  • 함수 앞에 붙여서 사용하며, async를 사용한 함수는 자동으로 Promise를 반환하는 비동기 처리 함수가 된다.

- async 예시

// async

function hello() {
  return "hello";
}

async function helloAsync() {
  return "hello Async";
}

console.log(hello());
console.log(helloAsync());

// 출력
// 'hello'
// Promise { 'hello Async' }

// ------------------------------------------------

async function helloAsync() {
  return "hello Async"; // "hello Async"가 resolve의 값
}

helloAsync().then((res) => {
  console.log(res);
});

// 출력
// 'hello Async'
  • async를 사용한 함수 역시 Promise객체를 반환하므로 then / catch 메서드 사용가능함

1-2. await

  • await을 비동기 함수의 호출 앞에 붙이면, 비동기 함수를 동기함수처럼 작동시킴
  • 즉, await이 붙은 함수가 끝나기 전까지 그 아래의 코드들을 수행하지 않음
  • await은 async가 붙은 함수 내에서만 사용 가능함

- await 예시

// await

function delay(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}

async function helloAsync() {
  await delay(3000);
  return "hello async";
}

async function main() {
  const res = await helloAsync();
  console.log(res);
}

main();

// 출력
// 'hello Async'
  • async와 await을 활용하여 비동기 코드 Promise를 반환하는 함수를 동기적인 함수를 호출한 것처럼 사용할 수 있도록 만들어 줌
javascriptprogrammingasyncawait
profile

조정곤

주니어 프론트엔드 개발자

github
linkedin
instagram
email

< 이전글

JavaScript API, fetch

다음글 >

JavaScript Promise

Javascript 포스트 (12)

down-arrow
JavaScript 역사JavaScript DOMJavaScript 기초 문법JavaScript 함수JavaScript 객체JavaScript 배열JavaScript 이벤트JavaScript 동기, 비동기JavaScript PromiseJavaScript async, awaitJavaScript API, fetchJavaScript try, catch