PluginProbe
Media Cloud Sync / 1.4.1
Media Cloud Sync v1.4.1
1.4.1 1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 All 35 releases
media-cloud-sync / includes / sdk / s3 / GuzzleHttp / Promise / FulfilledPromise.php

FulfilledPromise.php in Media Cloud Sync 1.4.1, at includes/sdk/s3/GuzzleHttp/Promise/FulfilledPromise.php

74 lines 2.0 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 Dudlewebs\WPMCS\s3\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 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) : PromiseInterface
28 {
29 // Return itself if there is no onFulfilled function.
30 if (!$onFulfilled) {
31 return $this;
32 }
33 $queue = Utils::queue();
34 $p = new Promise([$queue, 'run']);
35 $value = $this->value;
36 $queue->add(static function () use($p, $value, $onFulfilled) : void {
37 if (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) : 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