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
- Future::isCompleted — Verifica se il Future e’ completato
- Future::cancel — Annulla il Future
- Future::map — Trasforma il risultato