PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.3
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.3
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 / FulfilledPromise.php

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

74 lines 2.2 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 fulfilled.
8 *
9 * Thenning off of this promise will invoke the onFulfilled callback
10 * immediately and ignore other callbacks.
11 *
12 * @final
13 */
14 class FulfilledPromise implements \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
15 {
16 private $value;
17 /**
18 * @param mixed $value
19 */
20 public function __construct($value)
21 {
22 if (\is_object($value) && \method_exists($value, 'then')) {
23 throw new \InvalidArgumentException('You cannot create a FulfilledPromise with a promise.');
24 }
25 $this->value = $value;
26 }
27 public function then(?callable $onFulfilled = null, ?callable $onRejected = null) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
28 {
29 // Return itself if there is no onFulfilled function.
30 if (!$onFulfilled) {
31 return $this;
32 }
33 $queue = \YoastSEO_Vendor\GuzzleHttp\Promise\Utils::queue();
34 $p = new \YoastSEO_Vendor\GuzzleHttp\Promise\Promise([$queue, 'run']);
35 $value = $this->value;
36 $queue->add(static function () use($p, $value, $onFulfilled) : void {
37 if (\YoastSEO_Vendor\GuzzleHttp\Promise\Is::pending($p)) {
38 try {
39 $p->resolve($onFulfilled($value));
40 } catch (\Throwable $e) {
41 $p->reject($e);
42 }
43 }
44 });
45 return $p;
46 }
47 public function otherwise(callable $onRejected) : \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface
48 {
49 return $this->then(null, $onRejected);
50 }
51 public function wait(bool $unwrap = \true)
52 {
53 return $unwrap ? $this->value : null;
54 }
55 public function getState() : string
56 {
57 return self::FULFILLED;
58 }
59 public function resolve($value) : void
60 {
61 if ($value !== $this->value) {
62 throw new \LogicException('Cannot resolve a fulfilled promise');
63 }
64 }
65 public function reject($reason) : void
66 {
67 throw new \LogicException('Cannot reject a fulfilled promise');
68 }
69 public function cancel() : void
70 {
71 // pass
72 }
73 }
74