要在Java中实现异步回调并返回给前端,可以使用CompletableFuture类。以下是一个简单的示例:
- 首先,创建一个接口作为回调函数:
public interface Callback {
void onSuccess(String result);
void onFailure(Exception e);
}
- 然后,创建一个方法来执行异步操作,并在操作完成后调用回调函数:
import java.util.concurrent.CompletableFuture;
public class AsyncDemo {
public static void main(String[] args) {
AsyncDemo demo = new AsyncDemo();
demo.asyncOperation("Hello, World!", new Callback() {
@Override
public void onSuccess(String result) {
System.out.println("成功:" + result);
}
@Override
public void onFailure(Exception e) {
System.out.println("失败:" + e.getMessage());
}
});
}
public void asyncOperation(String input, Callback callback) {
CompletableFuture.supplyAsync(() -> {
try {
// 模拟耗时操作
Thread.sleep(1000);
return input.toUpperCase();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}).thenAccept(result -> {
callback.onSuccess(result);
}).exceptionally(e -> {
callback.onFailure(e);
return null;
});
}
}
在这个示例中,我们创建了一个名为AsyncDemo
的类,其中包含一个名为asyncOperation
的方法。这个方法接受一个字符串和一个回调函数作为参数。我们使用CompletableFuture.supplyAsync
来执行异步操作,并在操作完成后调用回调函数的onSuccess
或onFailure
方法。