PluginProbe
Media Cloud Sync / 1.3.11
Media Cloud Sync v1.3.11
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 1.3.0 All 34 releases
media-cloud-sync / includes / sdk / s3 / GuzzleHttp / Promise / RejectedPromise.php

RejectedPromise.php in Media Cloud Sync 1.3.11, at includes/sdk/s3/GuzzleHttp/Promise/RejectedPromise.php

79 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 Dudlewebs\WPMCS\s3\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 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) : PromiseInterface
28 {
29 // If there's no onRejected callback then just return self.
30 if (!$onRejected) {
31 return $this;
32 }
33 $queue = Utils::queue();
34 $reason = $this->reason;
35 $p = new Promise([$queue, 'run']);
36 $queue->add(static function () use($p, $reason, $onRejected) : void {
37 if (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) : PromiseInterface
50 {
51 return $this->then(null, $onRejected);
52 }
53 public function wait(bool $unwrap = \true)
54 {
55 if ($unwrap) {
56 throw 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