File tree Expand file tree Collapse file tree 2 files changed +113
-0
lines changed Expand file tree Collapse file tree 2 files changed +113
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Http \Client \Promise ;
4
+
5
+ use Http \Client \Exception ;
6
+ use Http \Promise \Promise ;
7
+ use Psr \Http \Message \ResponseInterface ;
8
+
9
+ final class HttpFulfilledPromise implements Promise
10
+ {
11
+ /**
12
+ * @var ResponseInterface
13
+ */
14
+ private $ response ;
15
+
16
+ /**
17
+ * @param ResponseInterface $response
18
+ */
19
+ public function __construct (ResponseInterface $ response )
20
+ {
21
+ $ this ->response = $ response ;
22
+ }
23
+
24
+ /**
25
+ * {@inheritdoc}
26
+ */
27
+ public function then (callable $ onFulfilled = null , callable $ onRejected = null )
28
+ {
29
+ if (null === $ onFulfilled ) {
30
+ return $ this ;
31
+ }
32
+
33
+ try {
34
+ return new self ($ onFulfilled ($ this ->response ));
35
+ } catch (Exception $ e ) {
36
+ return new HttpRejectedPromise ($ e );
37
+ }
38
+ }
39
+
40
+ /**
41
+ * {@inheritdoc}
42
+ */
43
+ public function getState ()
44
+ {
45
+ return Promise::FULFILLED ;
46
+ }
47
+
48
+ /**
49
+ * {@inheritdoc}
50
+ */
51
+ public function wait ($ unwrap = true )
52
+ {
53
+ if ($ unwrap ) {
54
+ return $ this ->response ;
55
+ }
56
+ }
57
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Http \Client \Promise ;
4
+
5
+ use Http \Client \Exception ;
6
+ use Http \Promise \Promise ;
7
+
8
+ final class HttpRejectedPromise implements Promise
9
+ {
10
+ /**
11
+ * @var \Exception
12
+ */
13
+ private $ exception ;
14
+
15
+ /**
16
+ * @param \Exception $exception
17
+ */
18
+ public function __construct (\Exception $ exception )
19
+ {
20
+ $ this ->exception = $ exception ;
21
+ }
22
+
23
+ /**
24
+ * {@inheritdoc}
25
+ */
26
+ public function then (callable $ onFulfilled = null , callable $ onRejected = null )
27
+ {
28
+ if (null === $ onRejected ) {
29
+ return $ this ;
30
+ }
31
+
32
+ try {
33
+ return new HttpFulfilledPromise ($ onRejected ($ this ->exception ));
34
+ } catch (Exception $ e ) {
35
+ return new self ($ e );
36
+ }
37
+ }
38
+
39
+ /**
40
+ * {@inheritdoc}
41
+ */
42
+ public function getState ()
43
+ {
44
+ return Promise::REJECTED ;
45
+ }
46
+
47
+ /**
48
+ * {@inheritdoc}
49
+ */
50
+ public function wait ($ unwrap = true )
51
+ {
52
+ if ($ unwrap ) {
53
+ throw $ this ->exception ;
54
+ }
55
+ }
56
+ }
You can’t perform that action at this time.
0 commit comments