一,什么是异步回调?
例如:A在做某个工作,突然碰到一个问题了,A把这个问题交给B去完成,A就可以继续完成工作,等到B完成工作后会通知A,工作的结果。
例如:你在打开某个程序时,使用某些功能可能会因为加载内容而等待很久,此时你可以新开一个窗口,做其它的请求。
二,java中使用异步回调案例
public static void main(String[] args) throws ExecutionException, InterruptedException { CompletableFuture<String> completableFuture = CompletableFuture.supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName()+"异步回调执行"); return "Success"; }); System.out.println("主线程继续执行"); System.out.println("异步回调成功的的值:"+completableFuture.get()); String result = completableFuture.whenComplete((t, u) -> { System.out.println("t->" + t); System.out.println("u->" + u); }).exceptionally((e) -> { System.out.println(e.getMessage()); return "error"; }).get(); System.out.println(result); }