Future::ignore
(PHP 8.6+, True Async 1.0)
php
public function ignore(): FutureMarkiert das Future als ignoriert. Wenn das Future mit einem Fehler abgeschlossen wird und der Fehler nicht behandelt wird, wird er nicht an den Handler für unbehandelte Ausnahmen des Event-Loops übergeben. Nützlich für "Fire-and-Forget"-Aufgaben, bei denen das Ergebnis keine Rolle spielt.
Rückgabewert
Future — gibt dasselbe Future für Methodenverkettung zurück.
Beispiele
Beispiel #1 Future-Fehler ignorieren
php
<?php
use Async\Future;
use Async\FutureState;
// Eine Aufgabe starten, deren Fehler uns nicht interessieren
$state = new FutureState();
$future = new Future($state);
$future->ignore();
\Async\spawn(function() use ($state) {
// Diese Operation kann fehlschlagen
try {
sendAnalytics(['event' => 'page_view']);
$state->complete(null);
} catch (\Throwable $e) {
$state->error($e);
}
});
// Der Fehler wird nicht an den Event-Loop-Handler weitergegebenBeispiel #2 Ignore mit Methodenverkettung verwenden
php
<?php
use Async\Future;
use Async\FutureState;
function warmupCache(array $keys): void {
foreach ($keys as $key) {
$state = new FutureState();
(new Future($state))->ignore(); // Cache-Fehler sind nicht kritisch
\Async\spawn(function() use ($state, $key) {
try {
$data = loadFromDatabase($key);
saveToCache($key, $data);
$state->complete(null);
} catch (\Throwable $e) {
$state->error($e);
}
});
}
}
warmupCache(['user:1', 'user:2', 'user:3']);Siehe auch
- Future::catch — Einen Future-Fehler behandeln
- Future::finally — Callback bei Future-Abschluss