![image](https://user-images.githubusercontent.com/42512469/190078802-e1818b47-5905-4452-86cf-25ce70b4174f.png)


![image](https://user-images.githubusercontent.com/42512469/190079027-44af1591-cc7b-4149-ba93-ffbbef238038.png)

if (t != null) {
                    observer.onError(t);
                    return;
                }
                if (r.hasException()) {
                    observer.onError(r.getException());
                    return;
                }
                observer.onNext(r.getValue());
                observer.onCompleted();
            });
            pureArgument = invocation.getArguments()[0];
            result = new AsyncRpcResult(CompletableFuture.completedFuture(new AppResponse()),
                invocation);
        } else {
            if (methodDescriptor instanceof StubMethodDescriptor) {
                pureArgument = invocation.getArguments()[0];
            } else {
                pureArgument = invocation.getArguments();
            }
            result = new AsyncRpcResult(future, invocation);
            result.setExecutor(callbackExecutor);
            FutureContext.getContext().setCompatibleFuture(future);
        }
        ClientCall.Listener callListener = new UnaryClientCallListener(future);
        final StreamObserver<Object> requestObserver = call.start(request, callListener);
        requestObserver.onNext(pureArgument);
        requestObserver.onCompleted();
        return result;
    }