我有一个异步函数调用其他异步函数。在Java中,如何等到异步调用完成(包括其中的任何嵌套异步调用)。
我已经可以调用未来了,但没有运气。
示例代码:
void asyncMehodA(){ }
void asyncMethodB() {
asyncMehodA();
}
我尝试了未来可调用的方式:
final Callable<Void> callable1 = new Callable<Void>() {
@Override
public Void call() {
asyncMethodB();
return null;
}
};
final Future<Void> callableFuture = mExecutor.submit(callable1);
try {
callableFuture.get();
} catch (final InterruptedException | ExecutionException e) {}
希望 get 函数将阻塞执行,直到异步返回。但似乎 get 函数将触发异步调用并恢复 null。而不是等待异步完成其执行。我在验证了日志语句中添加了相同的日志语句。如果我的理解是错误的,请纠正我。建议任何其他可以帮助我的概念。
qq_笑_17
DIEA
相关分类