等待异步回调函数在java中返回 final函数functionCallback=(布尔t)->{ if(t){ plugin.setIsInstalled(Boolean.TRUE); } 返回Void.TYPE; }; 安装(插件、函数回调); if(plugin.getIsInstalled().getValue()) 返回“完成”; 其他的 返回“未完成”;
一旦回调完成执行,我想检查等待异步回调函数在java中返回 final函数functionCallback=(布尔t)->{ if(t){ plugin.setIsInstalled(Boolean.TRUE); } 返回Void.TYPE; }; 安装(插件、函数回调); if(plugin.getIsInstalled().getValue()) 返回“完成”; 其他的 返回“未完成”;,java,asynccallback,Java,Asynccallback,一旦回调完成执行,我想检查是否(plugin.getIsInstalled().getValue())。在回调完成执行之前,如何防止执行此if条件?回调主要用于在特定任务完成后执行任务。因此,最好将要执行的代码分离到一个不同的函数调用中 如果要在回调后执行某些操作,请使用嵌套回调 您可以使用在回调函数中调用的FutureTask: final Function<Boolean, ? extends Class<Void>> functionCallback = (Bool
是否(plugin.getIsInstalled().getValue())
。在回调完成执行之前,如何防止执行此if条件?回调主要用于在特定任务完成后执行任务。因此,最好将要执行的代码分离到一个不同的函数调用中
如果要在回调后执行某些操作,请使用嵌套回调 您可以使用在回调函数中调用的
FutureTask
:
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";
final FutureTask ft=new FutureTask(()->{},new Object());
最终函数functionCallback=(布尔t)->{
if(t){
plugin.setIsInstalled(Boolean.TRUE);
ft.run();
}
返回Void.TYPE;
};
安装(插件、函数回调);
ft.get();
if(plugin.getIsInstalled().getValue())
返回“完成”;
其他的
返回“未完成”;
Future.get
等待调用run
方法,您还可以使用接受超时的get
-方法,以便在超时时间过长时做出反应
倒计时锁存器
或重入锁存器
foo#install
可以返回一个CompletableFuture
,您可以按如下方式使用结果CompletableFuture=CompletableFuture.supplyAsync(()->1);
future.tenaccept((v)->System.out.println(“v=“+v”);
和另一个
方法,您可以使用该方法运行应用后所需的任何内容李>
javafx包的
getIsInstalled
的返回类型是什么?BooleanProperty。此属性设置在回调函数中,我希望在回调完成执行后访问该函数
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";