TaskGroup::suppressErrors
(PHP 8.6+, True Async 1.0)
public TaskGroup::suppressErrors(): void
将组中所有当前错误标记为已处理。
当 TaskGroup 被销毁时,它会检查未处理的错误。如果错误未被处理
(通过 all()、foreach 或 suppressErrors()),析构函数会发出丢失错误的信号。
调用 suppressErrors() 是对错误已被处理的显式确认。
示例
示例 #1 选择性处理后抑制错误
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawn(fn() => "ok");
$group->spawn(function() { throw new \RuntimeException("fail 1"); });
$group->spawn(function() { throw new \LogicException("fail 2"); });
$group->seal();
$group->all(ignoreErrors: true);
// 手动处理错误
foreach ($group->getErrors() as $key => $error) {
log_error("任务 $key: {$error->getMessage()}");
}
// 将错误标记为已处理
$group->suppressErrors();
});
参见
- TaskGroup::getErrors — 获取错误数组
- TaskGroup::all — 等待所有任务