mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-14 15:35:31 +00:00
optimization
This commit is contained in:
parent
17ae932d31
commit
c426677841
@ -76,12 +76,13 @@ abstract class AsyncEvent{
|
|||||||
/** @phpstan-var PromiseResolver<self> $globalResolver */
|
/** @phpstan-var PromiseResolver<self> $globalResolver */
|
||||||
$globalResolver = new PromiseResolver();
|
$globalResolver = new PromiseResolver();
|
||||||
|
|
||||||
|
$handlerList = HandlerListManager::global()->getAsyncListFor(static::class);
|
||||||
$priorities = EventPriority::ALL;
|
$priorities = EventPriority::ALL;
|
||||||
$testResolve = function () use (&$testResolve, &$priorities, $globalResolver){
|
$testResolve = function () use ($handlerList, &$testResolve, &$priorities, $globalResolver){
|
||||||
if(count($priorities) === 0){
|
if(count($priorities) === 0){
|
||||||
$globalResolver->resolve($this);
|
$globalResolver->resolve($this);
|
||||||
}else{
|
}else{
|
||||||
$this->callPriority(array_shift($priorities))->onCompletion(function() use ($testResolve) : void{
|
$this->callPriority($handlerList, array_shift($priorities))->onCompletion(function() use ($testResolve) : void{
|
||||||
$testResolve();
|
$testResolve();
|
||||||
}, function () use ($globalResolver) {
|
}, function () use ($globalResolver) {
|
||||||
$globalResolver->reject();
|
$globalResolver->reject();
|
||||||
@ -97,8 +98,8 @@ abstract class AsyncEvent{
|
|||||||
/**
|
/**
|
||||||
* @phpstan-return Promise<null>
|
* @phpstan-return Promise<null>
|
||||||
*/
|
*/
|
||||||
private function callPriority(int $priority) : Promise{
|
private function callPriority(AsyncHandlerList $handlerList, int $priority) : Promise{
|
||||||
$handlers = HandlerListManager::global()->getAsyncListFor(static::class)->getListenersByPriority($priority);
|
$handlers = $handlerList->getListenersByPriority($priority);
|
||||||
|
|
||||||
/** @phpstan-var PromiseResolver<null> $resolver */
|
/** @phpstan-var PromiseResolver<null> $resolver */
|
||||||
$resolver = new PromiseResolver();
|
$resolver = new PromiseResolver();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user