gpt4 book ai didi

java - java中等待异步回调函数返回

转载 作者:行者123 更新时间:2023-12-02 10:09:01 25 4
gpt4 key购买 nike

final Function<Boolean, ? extends Class<Void>> functionCallback = (Boolean t) -> {
if(t) {
plugin.setIsInstalled(Boolean.TRUE);
}
return Void.TYPE;
};

foo.install(plugin,functionCallback);

if(plugin.getIsInstalled().getValue())
return "done";
else
return "not done";

我想在回调执行完成后检查if(plugin.getIsInstalled().getValue())。在回调完成执行之前,如何防止执行此 if 条件?

最佳答案

您可以使用在回调函数中调用的 FutureTask:

final FutureTask<Object> ft = new FutureTask<Object>(() -> {}, new Object());
final Function<Boolean, ? extends Class<Void>> functionCallback = (Boolean t) -> {
if(t) {
plugin.setIsInstalled(Boolean.TRUE);
ft.run();
}
return Void.TYPE;
};

foo.install(plugin,functionCallback);
ft.get();
if(plugin.getIsInstalled().getValue())
return "done";
else
return "not done";

Future.get 等待 run 方法被调用,您还可以使用接受超时的 get 方法,这样您就可以如果需要太长时间,请对此使用react。

关于java - java中等待异步回调函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55126968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com