我正在寻找关于链接多个方法的建议,这些方法是CompletableFutures。
假设我需要做3次手术。
假设我的方法是这样:
public static CompletableFuture<Long> searchMaster() {
return CompletableFuture.supplyAsync (() -> 100L);
}
public static CompletableFuture<Long> insertIntoMaster() {
return CompletableFuture.supplyAsync (() -> 200L);
}
public static CompletableFuture<Long> insertIntoChildDB() {
return CompletableFuture.supplyAsync (() -> 300L);
}
现在我的要求是:
第一个方法返回一个id。我将把这个id传递给第二个方法。在返回CompletableFuture的第二个方法的成功结果中,这个主in将传递给第三个方法,后者将在子表中插入一些数据。
如何使用JDK8 CompletableFutures进行链接。
发布于 2020-04-14 16:40:13
使用thenCompose()方法之一,它可以平缓期货,就像Stream.flatMap()平展流一样:
CompletableFuture<Long> future = searchMaster()
.thenCompose(id -> insertIntoMaster(id))
.thenCompose(primaryId -> insertIntoChildDB(primaryId));
https://stackoverflow.com/questions/61212001
复制相似问题