This commit is contained in:
2020-10-30 01:46:19 +08:00
parent e36d63d144
commit 73a2f691ce
2 changed files with 8 additions and 4 deletions
+7 -3
View File
@@ -187,14 +187,14 @@ class Event extends BaseObject
$defaultParameter = [$defaultParameter];
}
$result = call_user_func($handler, ...$defaultParameter);
if ($is_remove) {
if ($handler instanceof \Closure || $is_remove) {
$this->of($name, $handler);
}
return $result;
}
foreach ($this->_events[$name] as $event) {
[$handler, $defaultParameter] = $event;
foreach ($this->_events[$name] as $index => $event) {
try {
[$handler, $defaultParameter] = $event;
if (!empty($parameter)) {
$defaultParameter = ArrayAccess::merge($defaultParameter, $parameter);
}
@@ -204,6 +204,10 @@ class Event extends BaseObject
call_user_func($handler, ...$defaultParameter);
} catch (\Throwable $exception) {
$this->error($exception->getMessage());
} finally {
if ($handler instanceof \Closure) {
unset($this->_events[$name][$index]);
}
}
}
if ($is_remove) {