Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1433010
RejectedPromise.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
RejectedPromise.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
GuzzleHttp\Promise
;
/**
* A promise that has been rejected.
*
* Thenning off of this promise will invoke the onRejected callback
* immediately and ignore other callbacks.
*
* @final
*/
class
RejectedPromise
implements
PromiseInterface
{
private
$reason
;
/**
* @param mixed $reason
*/
public
function
__construct
(
$reason
)
{
if
(
is_object
(
$reason
)
&&
method_exists
(
$reason
,
'then'
))
{
throw
new
\InvalidArgumentException
(
'You cannot create a RejectedPromise with a promise.'
);
}
$this
->
reason
=
$reason
;
}
public
function
then
(
?
callable
$onFulfilled
=
null
,
?
callable
$onRejected
=
null
):
PromiseInterface
{
// If there's no onRejected callback then just return self.
if
(!
$onRejected
)
{
return
$this
;
}
$queue
=
Utils
::
queue
();
$reason
=
$this
->
reason
;
$p
=
new
Promise
([
$queue
,
'run'
]);
$queue
->
add
(
static
function
()
use
(
$p
,
$reason
,
$onRejected
):
void
{
if
(
Is
::
pending
(
$p
))
{
try
{
// Return a resolved promise if onRejected does not throw.
$p
->
resolve
(
$onRejected
(
$reason
));
}
catch
(
\Throwable
$e
)
{
// onRejected threw, so return a rejected promise.
$p
->
reject
(
$e
);
}
}
});
return
$p
;
}
public
function
otherwise
(
callable
$onRejected
):
PromiseInterface
{
return
$this
->
then
(
null
,
$onRejected
);
}
public
function
wait
(
bool
$unwrap
=
true
)
{
if
(
$unwrap
)
{
throw
Create
::
exceptionFor
(
$this
->
reason
);
}
return
null
;
}
public
function
getState
():
string
{
return
self
::
REJECTED
;
}
public
function
resolve
(
$value
):
void
{
throw
new
\LogicException
(
'Cannot resolve a rejected promise'
);
}
public
function
reject
(
$reason
):
void
{
if
(
$reason
!==
$this
->
reason
)
{
throw
new
\LogicException
(
'Cannot reject a rejected promise'
);
}
}
public
function
cancel
():
void
{
// pass
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 22:34 (1 h, 57 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
78/ac/5c08aa54eb023cd75094cea60623
Default Alt Text
RejectedPromise.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment