Future::completed

(PHP 8.6+, True Async 1.0)

public static function completed(mixed $value = null): Future

创建一个已经完成的 Future,包含指定的值。这是一个工厂方法,返回一个立即包含结果的 Future。适用于从返回 Future 的函数中返回已知值。

参数

value — Future 将以此值完成。默认为 null

返回值

Future — 一个包含指定值的已完成 Future。

示例

示例 #1 创建带有就绪值的 Future

<?php

use Async\Future;

$future = Future::completed(42);

var_dump($future->isCompleted()); // bool(true)
var_dump($future->await());       // int(42)

示例 #2 在返回 Future 的函数中使用

<?php

use Async\Future;

function fetchData(string $key): Future {
    // If data is in cache, return immediately
    $cached = getFromCache($key);
    if ($cached !== null) {
        return Future::completed($cached);
    }

    // Otherwise start an async operation
    return \Async\async(function() use ($key) {
        return loadFromDatabase($key);
    });
}

$result = fetchData('user:1')->await();
echo "Result: $result\n";

参见