Skip to content

Commit e3ed6ea

Browse files
authored
Merge pull request #1 from jsor-labs/WyriHaximus-improved-middleware-runner
Improve middleware runner improvement
2 parents 88344e0 + bdd7a91 commit e3ed6ea

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

src/MiddlewareRunner.php

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -39,34 +39,26 @@ public function __invoke(ServerRequestInterface $request)
3939
$func = function (ServerRequestInterface $request) use (&$func, &$position, &$that) {
4040
$middleware = $that->middleware[$position];
4141
$response = null;
42-
return new Promise\Promise(function ($resolve, $reject) use ($middleware, $request, $func, &$response, &$position) {
42+
$promise = new Promise\Promise(function ($resolve) use ($middleware, $request, $func, &$response, &$position) {
4343
$position++;
44-
try {
45-
$response = $middleware(
46-
$request,
47-
$func
48-
);
4944

50-
if (!($response instanceof PromiseInterface)) {
51-
$response = Promise\resolve($response);
52-
}
45+
$response = $middleware(
46+
$request,
47+
$func
48+
);
5349

54-
$response->then($resolve, function ($error) use (&$position, $reject) {
55-
$position--;
56-
$reject($error);
57-
});
58-
} catch (\Exception $error) {
59-
$position--;
60-
$reject($error);
61-
} catch (\Throwable $error) {
62-
$position--;
63-
$reject($error);
64-
}
50+
$resolve($response);
6551
}, function () use (&$response) {
6652
if ($response instanceof Promise\CancellablePromiseInterface) {
6753
$response->cancel();
6854
}
6955
});
56+
57+
return $promise->then(null, function ($error) use (&$position) {
58+
$position--;
59+
60+
return Promise\reject($error);
61+
});
7062
};
7163

7264
return $func($request);

0 commit comments

Comments
 (0)