PromiseTool
- class Firstred\PostNL\Util\PromiseTool
- Class PromiseTool.
Summary
Methods
Methods
- public static Firstred\PostNL\Util\PromiseTool::queue($assign=null)
- Get the global task queue used for promise resolution.This task queue MUST be run in an event loop in order for promises to besettled asynchronously. It will be automatically run when synchronouslywaiting on a promise.<code>while ($eventLoop->isRunning()) {queue()->run();}</code>
- Parameters:
$assign (
Firstred\PostNL\Util\TaskQueue) optionally specify a new queue instance
- Returns:
- public static Firstred\PostNL\Util\PromiseTool::task($task)
- Adds a function to run in the task queue when it is next `run()` and returnsa promise that is fulfilled or rejected with the result.
- Parameters:
$task (callable) task function to run
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::promiseFor($value)
- Creates a promise for a value if the value is not a promise.
- Parameters:
$value (mixed) promise or value
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::rejectionFor($reason)
- Creates a rejected promise for a reason if the reason is not a promise. Ifthe provided reason is a promise, then it is returned as-is.
- Parameters:
$reason (mixed) promise or reason
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::exceptionFor($reason)
- Create an exception for a rejected promise value.
- Parameters:
$reason (mixed)
- Returns:
\Firstred\PostNL\Util\Throwable
- public static Firstred\PostNL\Util\PromiseTool::iterFor($value)
- Returns an iterator for the given value.
- Parameters:
$value (mixed)
- Returns:
\Iterator
- public static Firstred\PostNL\Util\PromiseTool::inspect($promise)
- Synchronously waits on a promise to resolve and returns an inspection statearray.Returns a state associative array containing a “state” key mapping to avalid promise state. If the state of the promise is “fulfilled”, the arraywill contain a “value” key mapping to the fulfilled value of the promise. Ifthe promise is rejected, the array will contain a “reason” key mapping tothe rejection reason of the promise.
- Parameters:
$promise (
Http\Promise\Promise) promise or value
- Returns:
array
- Throws:
\Exception
- public static Firstred\PostNL\Util\PromiseTool::inspectAll($promises)
- Waits on all of the provided promises, but does not unwrap rejected promisesas thrown exception.Returns an array of inspection state arrays.
- Parameters:
$promises (
Http\Promise\Promise[]) traversable of promises to wait upon
- Returns:
array
- Throws:
\Exception- Throws:
\Exception- Throws:
\Exception- Throws:
\Exception
- public static Firstred\PostNL\Util\PromiseTool::unwrap($promises)
- Waits on all of the provided promises and returns the fulfilled values.Returns an array that contains the value of each promise (in the same orderthe promises were provided). An exception is thrown if any of the promisesare rejected.
- Parameters:
$promises (mixed) iterable of Promise objects to wait on
- Returns:
array
- Throws:
\Exceptionon error- Throws:
\Firstred\PostNL\Util\Throwableon error in PHP >=7- Throws:
\Exceptionon error- Throws:
\Firstred\PostNL\Util\Throwableon error in PHP >=7
- public static Firstred\PostNL\Util\PromiseTool::all($promises, $recursive=false)
- Given an array of promises, return a promise that is fulfilled when all theitems in the array are fulfilled.The promise's fulfillment value is an array with fulfillment values atrespective positions to the original array. If any promise in the arrayrejects, the returned promise is rejected with the rejection reason.
- Parameters:
$promises (mixed) promises or values
$recursive (bool) - If true, resolves new promises that might have been added to the stack during its own resolution
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::some($count, $promises)
- Initiate a competitive race between multiple promises or values (values willbecome immediately fulfilled promises).When count amount of promises have been fulfilled, the returned promise isfulfilled with an array that contains the fulfillment values of the winnersin order of resolution.
- Parameters:
$count (int) total number of promises
$promises (mixed) promises or values
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::any($promises)
- Like some(), with 1 as count. However, if the promise fulfills, thefulfillment value is not an array of 1 but the value directly.
- Parameters:
$promises (mixed) promises or values
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::settle($promises)
- Returns a promise that is fulfilled when all of the provided promises havebeen fulfilled or rejected.The returned promise is fulfilled with an array of inspection state arrays.
- Parameters:
$promises (mixed) promises or values
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::each($iterable, $onFulfilled=null, $onRejected=null)
- Given an iterator that yields promises or values, returns a promise that isfulfilled with a null value when the iterator has been consumed or theaggregate promise has been fulfilled or rejected.$onFulfilled is a function that accepts the fulfilled value, iteratorindex, and the aggregate promise. The callback can invoke any necessary sideeffects and choose to resolve or reject the aggregate promise if needed.$onRejected is a function that accepts the rejection reason, iteratorindex, and the aggregate promise. The callback can invoke any necessary sideeffects and choose to resolve or reject the aggregate promise if needed.
- Parameters:
$iterable (mixed) iterator or array to iterate over
$onFulfilled (callable)
$onRejected (callable)
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::eachLimit($iterable, $concurrency, $onFulfilled=null, $onRejected=null)
- Like each, but only allows a certain number of outstanding promises at anygiven time.$concurrency may be an integer or a function that accepts the number ofpending promises and returns a numeric concurrency limit value to allow fordynamic a concurrency size.
- Parameters:
$iterable (mixed)
$concurrency (int | callable)
$onFulfilled (callable)
$onRejected (callable)
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::eachLimitAll($iterable, $concurrency, $onFulfilled=null)
- Like each_limit, but ensures that no promise in the given $iterable argumentis rejected. If any promise is rejected, then the aggregate promise isrejected with the encountered rejection.
- Parameters:
$iterable (mixed)
$concurrency (int | callable)
$onFulfilled (callable)
- Returns:
\Http\Promise\Promise
- public static Firstred\PostNL\Util\PromiseTool::isFulfilled($promise)
- Returns true if a promise is fulfilled.
- Parameters:
$promise (
Http\Promise\Promise)
- Returns:
bool
- public static Firstred\PostNL\Util\PromiseTool::isRejected($promise)
- Returns true if a promise is rejected.
- Parameters:
$promise (
Http\Promise\Promise)
- Returns:
bool
- public static Firstred\PostNL\Util\PromiseTool::isSettled($promise)
- Returns true if a promise is fulfilled or rejected.
- Parameters:
$promise (
Http\Promise\Promise)
- Returns:
bool