function Promise::settle
Same name in this branch
- 11.1.x vendor/guzzlehttp/promises/src/Promise.php \GuzzleHttp\Promise\Promise::settle()
Parameters
PromiseInterface<T> $result:
1 call to Promise::settle()
- Promise::reject in vendor/
react/ promise/ src/ Promise.php
File
-
vendor/
react/ promise/ src/ Promise.php, line 198
Class
- Promise
- @template T @template-implements PromiseInterface<T>
Namespace
React\PromiseCode
private function settle(PromiseInterface $result) : void {
$result = $this->unwrap($result);
if ($result === $this) {
$result = new RejectedPromise(new \LogicException('Cannot resolve a promise with itself.'));
}
if ($result instanceof self) {
$result->requiredCancelRequests++;
}
else {
// Unset canceller only when not following a pending promise
$this->canceller = null;
}
$handlers = $this->handlers;
$this->handlers = [];
$this->result = $result;
foreach ($handlers as $handler) {
$handler($result);
}
// Forward cancellation to rejected promise to avoid reporting unhandled rejection
if ($this->cancelled && $result instanceof RejectedPromise) {
$result->cancel();
}
}