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.
*/