PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.6
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.6
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / vendor_prefixed / guzzlehttp / promises / src / RejectedPromise.php

RejectedPromise.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 27.6, at vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php

79 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare (strict_types=1);
4 namespace YoastSEO_Vendor\GuzzleHttp\Promise;
5
6 /**
7 * A promise that has been rejected.
8 *
9 * Thenning off of this promise will invoke the onRejected callback
10 * immediately and ignore other callbacks.
11 *
12 * @final
13 */
14 class RejectedPromise implements \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
15 {
16 private $reason;
17 /**
18 * @param mixed $reason
19 */
20 public function __construct($reason)
21 {
22 if (\is_object($reason) && \method_exists($reason, 'then')) {
23 throw new \InvalidArgumentException('You cannot create a RejectedPromise with a promise.');
24 }
25 $this->reason = $reason;
26 }
27 public function then(?callable $onFulfilled = null, ?callable $onRejected = null) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
28 {
29 // If there's no onRejected callback then just return self.
30 if (!$onRejected) {
31 return $this;
32 }
33 $queue = \YoastSEO_Vendor\GuzzleHttp\Promise\Utils::queue();
34 $reason = $this->reason;
35 $p = new \YoastSEO_Vendor\GuzzleHttp\Promise\Promise([$queue, 'run']);
36 $queue->add(static function () use($p, $reason, $onRejected) : void {
37 if (\YoastSEO_Vendor\GuzzleHttp\Promise\Is::pending($p)) {
38 try {
39 // Return a resolved promise if onRejected does not throw.
40 $p->resolve($onRejected($reason));
41 } catch (\Throwable $e) {
42 // onRejected threw, so return a rejected promise.
43 $p->reject($e);
44 }
45 }
46 });
47 return $p;
48 }
49 public function otherwise(callable $onRejected) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
50 {
51 return $this->then(null, $onRejected);
52 }
53 public function wait(bool $unwrap = \true)
54 {
55 if ($unwrap) {
56 throw \YoastSEO_Vendor\GuzzleHttp\Promise\Create::exceptionFor($this->reason);
57 }
58 return null;
59 }
60 public function getState() : string
61 {
62 return self::REJECTED;
63 }
64 public function resolve($value) : void
65 {
66 throw new \LogicException('Cannot resolve a rejected promise');
67 }
68 public function reject($reason) : void
69 {
70 if ($reason !== $this->reason) {
71 throw new \LogicException('Cannot reject a rejected promise');
72 }
73 }
74 public function cancel() : void
75 {
76 // pass
77 }
78 }
79