Node.jsの非同期処理において、「Promise」とそのメソッド「.then()」は、非同期コードをより読みやすく、エラー処理を明確にするための重要な仕組みです。以下に、Promiseと.then()について詳しく説明します。
Promiseとは何か
基本概念
Promiseは「将来完了する可能性のある処理」を表す非同期処理の結果を表現するオブジェクトです。例えば、ファイルの読み込みやAPIの呼び出しなど、時間がかかる処理に使われます。
Promiseは3つの状態を持ちます:
| 状態 | 説明 |
|---|---|
pending |
処理がまだ完了していない状態 |
fulfilled |
処理が成功して結果が返された状態(resolveされた) |
rejected |
処理が失敗してエラーが返された状態(rejectされた) |
Promiseの基本構文
.then()メソッドの役割
.then()は、Promiseの処理が成功(fulfilled)したときに呼び出される成功時のコールバック関数を登録するメソッドです。
使用例
チェーン構文
.then()は連鎖的に繋げる(チェーンする)ことが可能です。これにより、非同期処理を順序立てて記述できます。
エラー処理(.catch())
Promiseで発生したエラー(rejectされた場合)は、.catch()で処理します。
まとめ
| 特徴 | 内容 |
|---|---|
| 状態管理 | pending, fulfilled, rejected の3つの状態 |
.then()の役割 |
成功時の処理を登録 |
| チェーン構文が可能 | 複数の非同期処理を順番に実行可能 |
.catch()でエラー処理 |
非同期エラーを一元的に扱える |
Promiseと.then()を使うことで、コールバック地獄(callback hell)を回避し、非同期処理を直列的・論理的に記述できるため、Node.js開発において非常に重要な構文です。必要に応じて、async/awaitと組み合わせて使うことも推奨されます。
ChatGPT4o 生成日:2025/06/25