async function ííì
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017ë 4ì.
async function í¤ìëë ííì ë´ìì async í¨ì를 ì ìí기 ìí´ ì¬ì©ë©ëë¤.
ëí async function statementì ì¬ì©íì¬ async í¨ì를 ì ìí ì ììµëë¤.
문ë²
async function (param0) {
statements
}
async function (param0, param1) {
statements
}
async function (param0, param1, /* ... */ paramN) {
statements
}
async function name(param0) {
statements
}
async function name(param0, param1) {
statements
}
async function name(param0, param1, /* ... */ paramN) {
statements
}
arrow functions를 ì¬ì©í´ë ë©ëë¤.
async (param) => expression;
async (param1, param2, ...paramN) => {
statements;
};
ì¸ì
name-
í¨ì ì´ë¦. ìëµê°ë¥íë©° ì´ê²½ì°í¨ìë anonymous íìì ì´ë¦ì í¨ì 몸체ì ëí´ ì§ìì ì¼ë¡ ì¬ì©.
paramN-
í¨ìì ì ë¬ë ì¸ìì ì´ë¦.
statements-
í¨ì 몸체를 구ì±íë ëª ë ¹ë¬¸ë¤.
ì¤ëª
async function ííìì 문ë²ê³¼ ì ì¬íë©°, ê±°ì ëì¼í©ëë¤. async function ì ì¸async function ííìê³¼ async function ì ì¸ë¬¸ì 주ì ì°¨ì´ì ì ìµëª
í¨ìë¡ì¨ì ì¬ì© ì¬ë¶ë¡, async function ííìì í¨ì ì´ë¦ì ìëµíë©´ ìµëª
í¨ì를 ë§ëëë¤. async function ííìì IIFE(ì¦ìì¤íí¨ì)ë¡ ì¬ì©í ì ììµëë¤. functions문ì를 ì°¸ê³ íì¸ì.
ìì
>ê°ë¨í ìì
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
// async function ííìì ë³ìì í ë¹
const add = async function (x) {
const a = await resolveAfter2Seconds(20);
const b = await resolveAfter2Seconds(30);
return x + a + b;
};
add(10).then((v) => {
console.log(v); // 4ì´ ë¤ì 60 ì¶ë ¥
});
// async function ííìì IIFEë¡ ì¬ì©
(async function (x) {
const p1 = resolveAfter2Seconds(20);
const p2 = resolveAfter2Seconds(30);
return x + (await p1) + (await p2);
})(10).then((v) => {
console.log(v); // 2ì´ ë¤ì 60 ì¶ë ¥
});
ëª ì¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-async-function-definitions> |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
async functionAsyncFunctionobjectawait