{category}

PHP - 非同期処理

Promise

プロミス(非同期処理

意味 非同期処理の結果を表現


Promiseとは?

Promiseは、非同期処理の最終的な完了もしくは失敗を表すオブジェクトです。主にJavaScriptで使用されますが、PHPでも利用可能です。

Promiseの具体的な使い方

ReactPHP Promiseを使用した非同期処理

<?php
require 'vendor/autoload.php';

use React\Promise\Promise;

function fetchUserData($userId) {
    return new Promise(function ($resolve, $reject) use ($userId) {
        // 非同期でユーザーデータを取得する処理をシミュレート
        $userData = [
            'id' => $userId,
            'name' => '山田太郎',
            'email' => '[email protected]'
        ];
        
        if ($userId > 0) {
            $resolve($userData);
        } else {
            $reject(new Exception('無効なユーザーID'));
        }
    });
}

// Promiseを使用
fetchUserData(1)
    ->then(function ($userData) {
        echo "ユーザーデータ取得成功:\n";
        print_r($userData);
    })
    ->otherwise(function ($error) {
        echo "エラー: " . $error->getMessage() . "\n";
    });

// 無効なIDでのPromise使用
fetchUserData(0)
    ->then(function ($userData) {
        echo "ユーザーデータ取得成功:\n";
        print_r($userData);
    })
    ->otherwise(function ($error) {
        echo "エラー: " . $error->getMessage() . "\n";
    });

👇出力結果

ユーザーデータ取得成功:
Array
(
    [id] => 1
    [name] => 山田太郎
    [email] => [email protected]
)
エラー: 無効なユーザーID

この例では、ReactPHP Promiseを使用して非同期処理を模擬しています。ユーザーデータを取得する関数を定義し、成功時と失敗時の処理を記述しています。有効なIDと無効なIDの両方のケースを示しています。

Promiseに関するよくある質問

Q. Promiseとは何ですか?
A. Promiseは非同期処理の最終的な完了または失敗を表すオブジェクトです。これにより、非同期メソッドが同期メソッドのように値を返すことができ、コールバック地獄を避けることができます。
Q. Promiseの状態とは?
A. Promiseには3つの状態があります:Pending(保留中)、Fulfilled(成功)、Rejected(拒否)。初期状態はPendingで、処理が完了すると FulfilledまたはRejectedになります。
Q. PHPでのPromiseの使用方法は?
A. PHPでPromiseを使用するには、通常ReactPHPやGuzzleなどのライブラリを使用します。これらのライブラリは、JavaScriptのPromiseと似た動作を提供し、非同期処理を簡潔に記述できます。

PHPのPromiseについても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのPromiseやPDOStatement::fetchAll()、exit()、(object)、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

PDOStatement::fetchAll()

全ての結果行を取得

種類: PDO

exit()

プログラムを終了する関数

種類: PHP言語構造

(object)

オブジェクトへの型変換

種類: 型変換

__FUNCTION__

現在の関数名

種類: マジック定数

array_pop()

配列の最後の要素を取り出す

種類: 配列関数