aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/ja/web/javascript/reference/operators/async_function/index.md108
1 files changed, 48 insertions, 60 deletions
diff --git a/files/ja/web/javascript/reference/operators/async_function/index.md b/files/ja/web/javascript/reference/operators/async_function/index.md
index f50d024a21..9b1dcfc3a3 100644
--- a/files/ja/web/javascript/reference/operators/async_function/index.md
+++ b/files/ja/web/javascript/reference/operators/async_function/index.md
@@ -2,50 +2,51 @@
title: 非同期関数式
slug: Web/JavaScript/Reference/Operators/async_function
tags:
-- Function
-- JavaScript
-- Language feature
-- Operator
-- Primary Expression
+ - 関数
+ - JavaScript
+ - 言語機能
+ - 演算子
+ - Primary Expression
+browser-compat: javascript.operators.async_function
translation_of: Web/JavaScript/Reference/Operators/async_function
---
-<div>{{jsSidebar("Operators")}}</div>
+{{jsSidebar("Operators")}}
-<p><strong><code>async function</code></strong> キーワードは、式の中で <code>async</code> 関数を定義するために使用できます。</p>
+**`async function`** キーワードは、式の中で `async` 関数を定義するために使用できます。
-<p>非同期関数は、 <a
- href="/ja/docs/Web/JavaScript/Reference/Statements/async_function">async function 文</a>を使用して定義することもできます。</p>
+非同期関数は、 [async function 文](/ja/docs/Web/JavaScript/Reference/Statements/async_function)を使用して定義することもできます。
-<h2 id="Syntax">構文</h2>
+## 構文
-<pre class="brush: js">async function [<var>name</var>]([<var>param1</var>[, <var>param2</var>[, ..., <var>paramN</var>]]]) {
- <var>statements</var>
-}</pre>
+```js
+async function [name]([param1[, param2[, ..., paramN]]]) {
+ statements
+}
+```
-<p>ES2015 では、<a href="/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions">アロー関数</a>を使用することもできます。</p>
+ES2015 では、[アロー関数](/ja/docs/Web/JavaScript/Reference/Functions/Arrow_functions)を使用することもできます。
-<h3 id="Parameters">引数</h3>
+### 引数
-<dl>
- <dt><code>name</code></dt>
- <dd>関数名です。関数が<em>無名</em>の場合は省略可能です。名前は関数の本体内のみのローカルです。</dd>
- <dt><code>paramN</code></dt>
- <dd>関数に渡される引数名です。</dd>
- <dt><code>statements</code></dt>
- <dd>関数本体を構成する文です。</dd>
-</dl>
+- `name`
+ - : 関数名です。関数が*無名*の場合は省略可能です。名前は関数の本体内のみのローカルです。
+- `paramN`
+ - : 関数に渡される引数名です。
+- `statements`
+ - : 関数本体を構成する文です。
-<h2 id="Description">解説</h2>
+## 解説
-<p><code>async function</code> 式は {{jsxref('Statements/async_function', 'async function statement')}} と非常に似ており、構文もほとんど同じです。async <code>function</code> 式と async <code>function</code> 文の主な違いは、<code>async function</code> 式が<em>無名</em>関数を生成するために<em>関数名</em>を省略できる点です。<code>async function</code> 式は、定義後直ちに実行される <strong>IIFE</strong> (即時実行関数式) として使用することもできます。詳細は<a href="/ja/docs/Web/JavaScript/Reference/Functions">関数</a>の章を見てください。</p>
+`async function` 式は {{jsxref('Statements/async_function', 'async function 文')}}とよく似ており、構文もほとんど同じです。async `function` 式と async `function` 文の主な違いは、`async function` 式が*関数名*を省略して*無名*関数を生成することができる点です。 `async function` 式は、定義後直ちに実行される [IIFE](/ja/docs/Glossary/IIFE) (即時実行関数式) として使用することもできます。詳細は[関数](/ja/docs/Web/JavaScript/Reference/Functions)の章を見てください。
-<h2 id="Examples">例</h2>
+## 例
-<h3 id="Simple_example">シンプルな例</h3>
+### シンプルな例
-<pre class="brush: js">function resolveAfter2Seconds(x) {
- return new Promise(resolve =&gt; {
- setTimeout(() =&gt; {
+```js
+function resolveAfter2Seconds(x) {
+ return new Promise(resolve => {
+ setTimeout(() => {
resolve(x);
}, 2000);
});
@@ -57,7 +58,7 @@ const add = async function(x) { // 変数に代入された非同期関数式
return x + a + b;
};
-add(10).then(v =&gt; {
+add(10).then(v => {
console.log(v); // 4 秒後に 60 を表示
});
@@ -65,34 +66,21 @@ add(10).then(v =&gt; {
let p_a = resolveAfter2Seconds(20);
let p_b = resolveAfter2Seconds(30);
return x + await p_a + await p_b;
-})(10).then(v =&gt; {
+})(10).then(v => {
console.log(v); // 2 秒後に 60 を表示
});
-</pre>
-
-<h2 id="Specifications">仕様書</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">仕様書</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Browser_compatibility">ブラウザーの互換性</h2>
-
-<p>{{Compat("javascript.operators.async_function")}}</p>
-
-<h2 id="See_also">関連情報</h2>
-
-<ul>
- <li>{{jsxref("Statements/async_function", "async function")}}</li>
- <li>{{jsxref("AsyncFunction")}} オブジェクト</li>
- <li>{{jsxref("Operators/await", "await")}}</li>
-</ul>
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Statements/async_function", "async function")}}
+- {{jsxref("AsyncFunction")}} オブジェクト
+- {{jsxref("Operators/await", "await")}}