We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

async function 키워드는 async 함수를 정의하는데 사용되는 표현식이다.


async function [name]([param1[, param2[, ..., paramN]]]) {


함수 이름. 함수의 이름은 오직 함수 몸체에서 지역적으로 사용되며, 함수 이름을 선언하지 않으면 익명함수로 사용된다.
함수에 전달되는 매개변수.
함수 몸체를 구성하는 '문'.


async function 표현식은 async function statement 문법과 매우 비슷하다. async function 표현식과 async function 문의 주된 차이는 익명함수로써의 사용 여부인데, async function 표현식은 함수 이름이 없으면 익명함수를 만든다. async function 표현식은 익명함수로 사용될 수 있기 때문에 IIFE (즉시실행함수)로 사용될 수 있다. 더 자세한 정보는 functions 챕터를 참고하라.


Simple example

function resolveAfter2Seconds(x) {
  return new Promise(resolve => {
    setTimeout(() => {
    }, 2000);

(async function(x) { // 즉시실행함수로 사용된 async function.
  var a = resolveAfter2Seconds(20);
  var b = resolveAfter2Seconds(30);
  return x + await a + await b;
})(10).then(v => {
  console.log(v);  // 2초 후에 콘솔에 60을 찍는다.

var add = async function(x) { // 변수에 할당된 async function 표현식.
  var a = await resolveAfter2Seconds(20);
  var b = await resolveAfter2Seconds(30);
  return x + a + b;

add(10).then(v => {
  console.log(v);  // 4초 후에 콘솔에 60을 찍는다.


Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'async function' in that specification.
Draft Initial definition in ES2017.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer  Edge Opera Safari (WebKit)
Basic support 55 52.0 (52.0) ? ? 42 ?
Feature Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? ? 52.0 (52.0) ? 42 ? 55

See also

문서 태그 및 공헌자

이 페이지의 공헌자: undefcat
최종 변경: undefcat,