11.4 Fetch API とは
現代の JavaScript では、より直感的で Promise ベースの Fetch API を使うのが標準です。コードが短くなり、async/await と組み合わせることで非常に読みやすくなります。
11.4.1 Fetch API を使用したプログラム
Fetch API の動作を確認しましょう。
ソースフォルダ:public/ch11
ファイル名:fetch.js
➢ fetch.html
前の章で作った ch10/try-catch.html をコピーし、ch11 にペーストしてください。
その際に、ファイル名を fetch.html に変更します。
ファイル内の try-catch.html や try-catch.js の記述も、fetch.html や fetch.js に修正します。
➢ fetch.js
// fetch.js
async function fetchUser() {
try {
// 1. fetchを使ってデータを取得しにいきます
const response = await fetch("https://jsonplaceholder.typicode.com/users/2");
// 2. レスポンスが正常(200系)かチェックします
if (!response.ok) {
throw new Error(`HTTPエラーが発生しました。ステータス: ${response.status}`);
}
// 3. テキストデータをJSON(オブジェクト)に変換します
const user = await response.json();
// 4. 結果を表示します
alert(`【成功】Fetchで取得したユーザー名: ${user.name}`);
} catch (error) {
// 通信失敗やパース失敗時のエラー処理
alert(`通信に失敗しました: ${error.message}`);
}
}
fetchUser();
実行結果

解説
一行ずつ、紐解きましょう。
3 行目の関数宣言には、async キーワードが付いています。
Fetch API は Promise ベースのため、await キーワードで、データの取得か通信の失敗が起こるまで待つ必要があります。
3: async function fetchUser() {
6 行目は Fetch API の本体です。fetch は Promise を返しますが、この Promise はサーバーからのレスポンスとなる response オブジェクトを履行します。このレスポンスに対して適切なメソッドを呼び出すと、リクエストに対するステータスの取得や、レスポンスそのものを JSON に変換して、そこからオブジェクトを取り出すことができます。
6: const response = await fetch("https://jsonplaceholder.typicode.com/users/2");
9 行目は、レスポンスが OK だったかを確認して、エラーの時は Error オブジェクトを new します。
9: if (!response.ok) {
14 行目は、user というオブジェクトを宣言し、JSON 形式でレスポンスをパースした結果を代入します。
14: const user = await response.json();
このわずか3行の間に、サーバーの通信結果から user というオブジェクトが生成することができました。
このオブジェクトに対し、キーの name でアクセスすれば、その値を取り出せるようになります。
17: alert(`【成功】Fetch で取得したユーザー名: ${user.name}`);
Fetch API の優れた点は、この簡便さと言っても過言ではありません。
