3 回答

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用在回調(diào)函數(shù)中調(diào)用的 :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等到調(diào)用該方法,您還可以使用接受超時(shí)的 -method,以便在耗時(shí)過(guò)長(zhǎng)時(shí)可以對(duì)此做出反應(yīng)。runget

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
可以使用在函數(shù)運(yùn)行時(shí)釋放的 或 。
CountDownLatch
ReentrantLock
您可以返回 a,您可以按如下方式使用結(jié)果
foo#install
CompletableFuture
CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> 1); future.thenAccept((v) -> System.out.println("v = " + v));
函數(shù)本身有一個(gè)方法,您可以使用該方法在 post 運(yùn)行所需的任何內(nèi)容。
andThen
apply

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
回調(diào)主要用于在特定任務(wù)完成后執(zhí)行任務(wù)。因此,它最好將要執(zhí)行的代碼分離到調(diào)用該函數(shù)的不同函數(shù)中。
如果你想在回調(diào)之后執(zhí)行一些東西,就要嵌套回調(diào)。
添加回答
舉報(bào)