Future::ignore
(PHP 8.6+, True Async 1.0)
php
public function ignore(): FutureContrassegna il Future come ignorato. Se il Future si completa con un errore e l'errore non viene gestito, non verra' passato al gestore delle eccezioni non gestite dell'event loop. Utile per le attivita' "fire-and-forget" dove il risultato non e' importante.
Valore di ritorno
Future --- restituisce lo stesso Future per il concatenamento dei metodi.
Esempi
Esempio #1 Ignorare gli errori del Future
php
<?php
use Async\Future;
use Async\FutureState;
// Avvia un'attivita' di cui non ci interessano gli errori
$state = new FutureState();
$future = new Future($state);
$future->ignore();
\Async\spawn(function() use ($state) {
// Questa operazione potrebbe fallire
try {
sendAnalytics(['event' => 'page_view']);
$state->complete(null);
} catch (\Throwable $e) {
$state->error($e);
}
});
// L'errore non verra' passato al gestore dell'event loopEsempio #2 Utilizzo di ignore con il concatenamento dei metodi
php
<?php
use Async\Future;
use Async\FutureState;
function warmupCache(array $keys): void {
foreach ($keys as $key) {
$state = new FutureState();
(new Future($state))->ignore(); // Gli errori della cache non sono critici
\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']);Vedi anche
- Future::catch --- Gestisce un errore del Future
- Future::finally --- Callback al completamento del Future