如何在 finally 块开始执行之前 return 尝试 java 中的块值?

How to return try block value in java even before finally block start executing?

我在 java 中有代码片段,例如

Int methodHitByAPI() {
     List returnValue = doSomething();
     return returnValue;
     finishProcess(returnValue);
}

我的疑问是我想执行 doSomething()(此方法被 UI 的 post api 调用击中)然后 return 响应立即执行 finishProcess() 。 finishProcess() 是一个非常大的进程,前端不能等到它完成(HTTP 超时)。但是这里要注意一点,前端执行doSomething()就够了,和finishProcess(returnValue)没有任何关系;那么我如何才能快速将响应发送到 UI 而不会出现 finishProcess(returnValue); 的任何问题?执行 finishProcess(returnValue) 是后端必须的,但对前端没有任何作用

我试过这个

try {
    returnValue = doSomething();
    return returnValue;
}
finally {
     finishProcess(returnValue);
}

但仍然

return returnValue;

仅在finishProcess(returnValue)之后执行;

解决这个问题的方法是什么?

注意 :我们可能会将 return 值发送到前端并调用另一个 APi 调用 finishProcess()。但事实并非如此

也许异步方法适合这里,例如...

ExecutorService executor = Executors.newFixedThreadPool(10);
public List methodHitByAPI() {
    List returnValue = doSomething();
    executor.submit(()->finishProcess(returnValue));
    return returnValue;
}

returnValue 将立即返回,但 finishProcess 将在单独的线程中执行。