Future::await

(PHP 8.6+, True Async 1.0)

public function await(?Completable $cancellation = null): mixed

Attende il completamento del Future e restituisce il suo risultato. Blocca la coroutine corrente fino al completamento del Future. Se il Future si e’ completato con un errore, il metodo lancia quell’eccezione. E’ possibile passare un Completable per annullare l’attesa tramite timeout o condizione esterna.

Parametri

cancellation — un oggetto di annullamento dell’attesa. Se fornito e attivato prima del completamento del Future, viene lanciata una CancelledException. Il valore predefinito e’ null.

Valore di ritorno

mixed — il risultato del Future.

Errori

Lancia un’eccezione se il Future si e’ completato con un errore o e’ stato annullato.

Esempi

Esempio #1 Attesa base del risultato

<?php

use Async\Future;

$future = \Async\async(function() {
    \Async\delay(100);
    return 42;
});

$result = $future->await();
echo "Result: $result\n"; // Result: 42

Esempio #2 Gestione degli errori durante l’attesa

<?php

use Async\Future;

$future = \Async\async(function() {
    throw new \RuntimeException("Something went wrong");
});

try {
    $result = $future->await();
} catch (\RuntimeException $e) {
    echo "Error: " . $e->getMessage() . "\n";
    // Error: Something went wrong
}

Vedi anche