こんにちは、Ryuseiです!
今回は「非同期処理」について学んだ内容をまとめていきます。
同期処理と非同期処理の違い
まずは、基本の概念から。
- 同期処理: 1つの作業が終わるまで次の作業は進まない
- 非同期処理: 作業Aが終わる前に、他の作業Bを進められる
これがどういう場面で役立つかというと、特に「APIのレスポンス待ち」のとき。
APIからの返事がいつ来るかわからないのに、その間ずっと他の処理が止まっていたら不便ですよね?
そんなときに使うのが「非同期処理」です。
JavaScriptでの非同期処理の書き方
fetchとthen
例えばAPIから情報を取得する場合、こんなコードになります。
fetch('https://qiita.com/api/v2/items?query=tag:JavaScript')
.then(response => {
console.log(response);
return response.json();
})
.then(data => {
console.log(data);
});
console.log('APIを叩きます');
この流れとしては、
fetch()
でAPIにリクエストを送る- その間に
console.log('APIを叩きます')
が実行される .then()
の中は、APIのレスポンスが返ってきてから順に実行
「.thenが上から順に実行される」のがポイント!
これで、APIからの返答を待ってから次の処理をする流れが作れます。
jQueryで書くと?
同じような処理をjQueryで書くとこんな感じ。
$.ajax('https://qiita.com/api/v2/items?query=tag:JavaScript')
.done(data => {
console.log(data);
})
.fail(() => {
console.log('error');
});
.done()
で成功時の処理、.fail()
でエラー時の処理を分けられます。
これもAPI待ちに便利!
async/awaitでスッキリ書く
.then()
を何個も重ねると見づらくなる…そんな時はasync/await
が便利。
async function func() {
const response = await fetch('https://qiita.com/api/v2/items?query=tag:JavaScript');
const data = await response.json();
console.log(data);
}
await
は「この処理が終わるまで次に進まないでね」という意味。
なので、上のコードでは fetch()
の結果を待ってから次の処理に進みます。
学んだこと&感想
非同期処理って、ただの便利な機能じゃなくて「効率的に処理を進めるための考え方」なんだなと感じました!
特にAPIのレスポンス待ちの場面では、非同期処理がないと詰まってしまうことがあるので、今後の学習や実装で積極的に使っていきたいと思います。
次回は、BEMやBootstrap、DOM操作の復習もしながら、もっと実践的なコードを書けるように頑張ります!
最後まで読んでくれてありがとうございます。
-
【第1回】Next.js × Firebaseチャット構想
こんにちは、Ryuseiです! 今回は、自作のNext.jsアプリにチャット機能を組み込むための構想と、試行錯誤のプロセスを振り返ります。 開発の目的 技術構成…
-
Claude Artifactsが進化:誰でもAIアプリを構築・共有できる時代へ
こんにちは、Ryuseiです! 今回は技術の進化がもたらす新しい可能性についての話題です。2025年、Anthropicの生成AI「Claude」に革新的な新機…
-
【Dify旅行記】地元発!個人開発で作る旅行提案チャットアプリのチャットフロー設計
こんにちは。今回は、地元の魅力を発信しながら、旅行の提案をしてくれるチャットアプリをDifyで個人開発した際のチャットフロー設計についてご紹介します。ブロックの…
-
Googleが新たに発表した「A2A」(Agent2Agent)プロトコルとは?
AI時代のインフラとなるか?Googleが仕掛ける“Agent2Agent(A2A)”の衝撃 2025年4月、Googleは異なるAIエージェント同士の通信を可…