모던 JS 토크 async function

발행: (2026년 3월 15일 PM 07:19 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Overview

async 함수Async Function 객체를 반환합니다. asyncawait 키워드를 사용하면, 원시 Promise를 사용할 때보다 비동기 처리를 더 간결하게 작성할 수 있습니다. 이 기능은 ES2017에서 표준화되었습니다.

Basic Usage

함수 정의 앞에 async 키워드를 추가합니다. 함수가 Promise가 아닌 값을 반환하면 자동으로 해결된 Promise로 감싸집니다.

async function asyncFunc() {
  return 'Amazing!';
}

asyncFunc().then(result => {
  console.log(result); // "Amazing!"
});

Returning Values with Parameters

인자를 활용한 값을 반환할 수 있으며, 이 역시 Promise로 감싸집니다.

async function asyncFuncB(text) {
  return 'Amazing!' + text;
}

asyncFuncB('Indeed!').then(result => {
  console.log(result); // "Amazing!Indeed!"
});

Returning Promises Directly

async 함수는 명시적인 Promise를 반환할 수도 있습니다.

async function asyncFuncC() {
  return new Promise((resolve, reject) => {
    resolve('Wonderful!');
  });
}

asyncFuncC().then(result => {
  console.log(result); // "Wonderful!"
});

같은 로직을 더 간결하게 표현할 수 있습니다:

async function asyncFuncC() {
  return Promise.resolve('Wonderful!');
}

asyncFuncC().then(result => {
  console.log(result); // "Wonderful!"
});

Using await

async 함수 내부에서 await 연산자는 해당 Promise가 해결될 때까지 실행을 일시 중지시켜, 명시적인 .then() 체인 없이 코드를 작성할 수 있게 합니다.

async function awaitFunc() {
  return 'Wonderful!';
}

async function asyncFuncD() {
  const result = await awaitFunc();
  console.log(result); // "Wonderful!"
}

asyncFuncD();

Further Reading

0 조회
Back to Blog

관련 글

더 보기 »

JS에서 this 키워드

markdown 소개 JavaScript의 this 키워드는 주니어와 시니어 개발자 모두를 혼란스럽게 합니다. this를 이해하는 것은 함수가 정의된 위치에 따라 달라지는 것이 아니라…

모던 JS 토크: 구조 분해 할당

Modern JS Talk: Destructuring Assignment의 커버 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2...