Future::await
(PHP 8.6+, True Async 1.0)
php
public function await(?Completable $cancellation = null): mixedWartet auf die Fertigstellung des Future und gibt dessen Ergebnis zurück. Blockiert die aktuelle Coroutine, bis das Future abgeschlossen ist. Wenn das Future mit einem Fehler abgeschlossen wurde, wird diese Ausnahme ausgelöst. Sie können ein Completable übergeben, um das Warten per Timeout oder externer Bedingung abzubrechen.
Parameter
cancellation — ein Objekt zum Abbruch des Wartens. Wenn angegeben und ausgelöst, bevor das Future abgeschlossen ist, wird eine AsyncCancellation geworfen. Standardwert ist null.
Rückgabewert
mixed — das Ergebnis des Future.
Fehler
Löst eine Ausnahme aus, wenn das Future mit einem Fehler abgeschlossen wurde oder abgebrochen wurde.
Beispiele
Beispiel #1 Einfaches Abwarten eines Ergebnisses
php
<?php
use Async\Future;
$future = \Async\async(function() {
\Async\delay(100);
return 42;
});
$result = $future->await();
echo "Ergebnis: $result\n"; // Ergebnis: 42Beispiel #2 Fehlerbehandlung beim Abwarten
php
<?php
use Async\Future;
$future = \Async\async(function() {
throw new \RuntimeException("Etwas ist schiefgelaufen");
});
try {
$result = $future->await();
} catch (\RuntimeException $e) {
echo "Fehler: " . $e->getMessage() . "\n";
// Fehler: Etwas ist schiefgelaufen
}Siehe auch
- Future::isCompleted — Prüfen, ob das Future abgeschlossen ist
- Future::cancel — Das Future abbrechen
- Future::map — Das Ergebnis transformieren