42 function task(callable $task)
 
   45     $promise = 
new Promise([$queue, 
'run']);
 
   46     $queue->add(
function () use ($task, $promise) {
 
   48             $promise->resolve($task());
 
   49         } 
catch (\Throwable $e) {
 
   51         } 
catch (\Exception $e) {
 
   73     if (method_exists($value, 
'then')) {
 
   74         $wfn = method_exists($value, 
'wait') ? [$value, 
'wait'] : 
null;
 
   75         $cfn = method_exists($value, 
'cancel') ? [$value, 
'cancel'] : 
null;
 
   76         $promise = 
new Promise($wfn, $cfn);
 
   77         $value->then([$promise, 
'resolve'], [$promise, 
'reject']);
 
  110     return $reason instanceof \Exception || $reason instanceof \Throwable
 
  124     if ($value instanceof \Iterator) {
 
  126     } elseif (is_array($value)) {
 
  127         return new \ArrayIterator($value);
 
  129         return new \ArrayIterator([$value]);
 
  152             'value' => $promise->
wait()
 
  156     } 
catch (\Throwable $e) {
 
  158     } 
catch (\Exception $e) {
 
  177     foreach ($promises as $key => $promise) {
 
  178         $results[$key] = 
inspect($promise);
 
  200     foreach ($promises as $key => $promise) {
 
  201         $results[$key] = $promise->wait();
 
  224         function ($value, $idx) use (&$results) {
 
  225             $results[$idx] = $value;
 
  227         function ($reason, $idx, 
Promise $aggregate) {
 
  228             $aggregate->reject($reason);
 
  230     )->
then(
function () use (&$results) {
 
  252 function some($count, $promises)
 
  263             $results[$idx] = $value;
 
  264             if (count($results) >= $count) {
 
  268         function ($reason) use (&$rejections) {
 
  269             $rejections[] = $reason;
 
  272         function () use (&$results, &$rejections, $count) {
 
  273             if (count($results) !== $count) {
 
  275                     'Not enough promises to fulfill count',
 
  280             return array_values($results);
 
  295     return some(1, $promises)->then(
function ($values) { 
return $values[0]; });
 
  315         function ($value, $idx) use (&$results) {
 
  318         function ($reason, $idx) use (&$results) {
 
  321     )->
then(
function () use (&$results) {
 
  348     callable $onFulfilled = 
null,
 
  349     callable $onRejected = 
null 
  352         'fulfilled' => $onFulfilled,
 
  353         'rejected'  => $onRejected
 
  375     callable $onFulfilled = 
null,
 
  376     callable $onRejected = 
null 
  379         'fulfilled'   => $onFulfilled,
 
  380         'rejected'    => $onRejected,
 
  381         'concurrency' => $concurrency
 
  399     callable $onFulfilled = 
null 
  406             $aggregate->
reject($reason);