<?php
declare(strict_types=1);
namespace GuzzleHttp\Promise;
final class Create
{
/**
* Creates a promise for a value if the value is not a promise.
*
* @param mixed $value Promise or value.
*/
public static function promiseFor($value): PromiseInterface
{
if ($value instanceof PromiseInterface) {
return $value;
}
// Return a Guzzle promise that shadows the given promise.
if (is_object($value) && method_exists($value, 'then')) {
$wfn = method_exists($value, 'wait') ? [$value, 'wait'] : null;
$cfn = method_exists($value, 'cancel') ? [$value, 'cancel'] : null;
$promise = new Promise($wfn, $cfn);
$value->then([$promise, 'resolve'], [$promise, 'reject']);
return $promise;
}
return new FulfilledPromise($value);
}
/**
* Creates a rejected promise for a reason if the reason is not a promise.
* If the provided reason is a promise, then it is returned as-is.
*
* @param mixed $reason Promise or reason.
*/
public static function rejectionFor($reason): PromiseInterface
{
if ($reason instanceof PromiseInterface) {
return $reason;
}
return new RejectedPromise($reason);
}
/**
* Create an exception for a rejected promise value.
*
* @param mixed $reason
*/
public static function exceptionFor($reason): \Throwable
{
if ($reason instanceof \Throwable) {
return $reason;
}
return new RejectionException($reason);
}
/**
* Returns an iterator for the given value.
*
* @param mixed $value
*/
public static function iterFor($value): \Iterator
{
if ($value instanceof \Iterator) {
return $value;
}
if (is_array($value)) {
return new \ArrayIterator($value);
}
return new \ArrayIterator([$value]);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AggregateException.php | File | 413 B | 0644 |
|
| CancellationException.php | File | 209 B | 0644 |
|
| Coroutine.php | File | 4.07 KB | 0644 |
|
| Create.php | File | 1.96 KB | 0644 |
|
| Each.php | File | 2.6 KB | 0644 |
|
| EachPromise.php | File | 7.42 KB | 0644 |
|
| FulfilledPromise.php | File | 2 KB | 0644 |
|
| Is.php | File | 941 B | 0644 |
|
| Promise.php | File | 8.75 KB | 0644 |
|
| PromiseInterface.php | File | 2.76 KB | 0644 |
|
| PromisorInterface.php | File | 249 B | 0644 |
|
| RejectedPromise.php | File | 2.21 KB | 0644 |
|
| RejectionException.php | File | 1.21 KB | 0644 |
|
| TaskQueue.php | File | 1.97 KB | 0644 |
|
| TaskQueueInterface.php | File | 450 B | 0644 |
|
| Utils.php | File | 8.25 KB | 0644 |
|