TaskGroup::finally
(PHP 8.6+, True Async 1.0)
public TaskGroup::finally(Closure $callback): void
Enregistre un callback qui est invoque lorsque le groupe est scelle et que toutes les taches sont terminees. Le callback recoit le TaskGroup en parametre.
Comme cancel() appelle implicitement seal(), le gestionnaire se declenche egalement lors de l’annulation.
Si le groupe est deja termine, le callback est appele immediatement de maniere synchrone.
Parametres
- callback
- Une Closure qui prend
TaskGroupcomme seul argument.
Exemples
Exemple #1 Journalisation de la fin
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->finally(function(TaskGroup $g) {
echo "Termine : " . $g->count() . " taches\n";
});
$group->spawn(fn() => "a");
$group->spawn(fn() => "b");
$group->seal();
$group->all();
});
// Sortie :
// Termine : 2 taches
Exemple #2 Appel sur un groupe deja termine
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawn(fn() => 1);
$group->seal();
$group->all();
// Le groupe est deja termine --- le callback est appele de maniere synchrone
$group->finally(function(TaskGroup $g) {
echo "appele immediatement\n";
});
echo "apres finally\n";
});
// Sortie :
// appele immediatement
// apres finally
Voir aussi
- TaskGroup::seal — Sceller le groupe
- TaskGroup::cancel — Annuler les taches