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 function 宣è¨ã¾ãã¯ã¢ãã¼æ§æã使ç¨ãã¦å®ç¾©ãããã¨ãã§ãã¾ãã
æ§æ
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
}
ã¡ã¢:
å¼æã¯ async function ãã¼ã¯ã¼ãã使ç¨ãããã¨ãã§ãã¾ãããasync function 宣è¨ã¨ã®æ··åãé²ãããã§ããasync function ãã¼ã¯ã¼ãã¯æãåãä»ãããã¨ãã§ããªãã³ã³ããã¹ãã§ç¾ããå ´åã®ã¿ãå¼ã®å§ã¾ãã«ãªãã¾ãã
弿°
nameçç¥å¯-
颿°åã§ãã颿°ãç¡åã®å ´åã¯çç¥å¯è½ã§ããååã¯é¢æ°ã®æ¬ä½å ã®ã¿ã®ãã¼ã«ã«ã§ãã
paramNçç¥å¯-
颿°ã«æ¸¡ããã弿°åã§ãã弿°ã®æ§æã«ã¤ãã¦ã¯ã颿°ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
statementsçç¥å¯-
颿°æ¬ä½ãæ§æããæã§ãã
解説
async function å¼ã¯ async function 宣è¨ã¨ããä¼¼ã¦ãããæ§æãã»ã¨ãã©åãã§ããasync function å¼ã¨ async function 宣è¨ã®ä¸»ãªéãã¯ãasync function å¼ã颿°åãçç¥ãã¦ç¡å颿°ãçæãããã¨ãã§ããç¹ã§ããasync function å¼ã¯ãå®ç¾©å¾ç´ã¡ã«å®è¡ããã IIFEï¼å³æå®è¡é¢æ°å¼ï¼ã¨ãã¦ä½¿ç¨ãããã¨ãã§ããæä¸ä½ã® await ãæ¨¡å£ãããã¨ãã§ãã¾ãã詳細ã¯é¢æ°ã®ç« ãè¦ã¦ãã ããã
ä¾
>éåæé¢æ°å¼ã®ä½¿ç¨
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
// 夿°ã«ä»£å
¥ãããéåæé¢æ°å¼
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 ã表示
});
// 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 ã表示
});
éåæ IIFE
async ã® IIFE ã使ç¨ããã¨ã await ããã³ for...await ããæä¸ä½ã® await ãå©ç¨ã§ããªãã³ã³ããã¹ãã§ä½¿ç¨ãããã¨ãã§ãã¾ããããã§ã¯ãã¢ãã¼é¢æ°ã使ç¨ã㦠IIFE ãå®ç¾©ãã¦ãã¾ããã async function å¼ã使ç¨ã§ãã¾ãã
const getFileStream = async (url) => {
// implementation
};
(async () => {
const stream = await getFileStream("https://domain.name/path/file.ext");
for await (const chunk of stream) {
console.log({ chunk });
}
})();
仿§æ¸
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-async-function-definitions > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
- 颿°ã¬ã¤ã
- 颿°
async functionAsyncFunctionawait