public function then(callable $onFulfilled = null, callable $onRejected = null, callable $onProgress = null)
    {
        $this->adaptee->then(function () use ($onFulfilled) {
            if ($onFulfilled !== null) {
                return call_user_func_array($onFulfilled, func_get_args());