public static function proxy(
        FutureArrayInterface $future,
        callable $onFulfilled = null,
        callable $onRejected = null,
        callable $onProgress = null
    ) {
        return new FutureArray(
            $future->then($onFulfilled, $onRejected, $onProgress),
            [$future, 'wait'],
            [$future, 'cancel']
        );
    }
public static function proxy(
        FutureArrayInterface $future,
        callable $onFulfilled = null,
        callable $onRejected = null,
        callable $onProgress = null
    ) {
        return new FutureArray(
            $future->then($onFulfilled, $onRejected, $onProgress),
            [$future, 'wait'],
            [$future, 'cancel']
        );
    }
public static function proxy ( FutureArrayInterface $ future , callable $ onFulfilled = null , callable $ onRejected = null , callable $ onProgress = null ) { return new FutureArray ( $ future -> then ( $ onFulfilled , $ onRejected , $ onProgress ) , [ $ future , 'wait' ] , [ $ future , 'cancel' ] ) ; }
Returns a proxied future that modifies the dereferenced value of another
future using a promise.

@param FutureArrayInterface $future      Future to wrap with a new future
@param callable    $onFulfilled Invoked when the future fulfilled
@param callable    $onRejected  Invoked when the future rejected
@param callable    $onProgress  Invoked when the future progresses

@return FutureArray
Returns a proxied future that modifies the dereferenced value of another future using a promise .