java.util.concurrent.CompletableFuture#thenCombineAsync ( )源码实例Demo

下面列出了java.util.concurrent.CompletableFuture#thenCombineAsync ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: hellokoding-courses   文件: SupplyAsyncTest.java
@Test
public void thenCombineAsync() throws ExecutionException, InterruptedException {
    CompletableFuture<String> completableFuture1 = CompletableFuture.supplyAsync(() -> "Future");
    CompletableFuture<String> completableFuture2 = CompletableFuture.supplyAsync(() -> " is awesome!");

    CompletableFuture<String> combinedCompletableFuture = completableFuture1.thenCombineAsync(completableFuture2, (s1, s2) -> s1.concat(s2));

    assertThat(combinedCompletableFuture.get()).isEqualTo("Future is awesome!");
}
 
源代码2 项目: lemminx   文件: XMLTextDocumentService.java
private static <R, M> CompletableFuture<R> computeModelAsync(CompletableFuture<M> loadModel,
		BiFunction<CancelChecker, M, R> code) {
	CompletableFuture<CancelChecker> start = new CompletableFuture<>();
	CompletableFuture<R> result = start.thenCombineAsync(loadModel, code);
	CancelChecker cancelIndicator = () -> {
		if (result.isCancelled())
			throw new CancellationException();
	};
	start.complete(cancelIndicator);
	return result;
}
 
源代码3 项目: exchange-core   文件: ExchangeApi.java
private CompletableFuture<CommandResultCode> submitPersistCommandAsync(final ApiPersistState apiCommand) {

        final CompletableFuture<CommandResultCode> future1 = new CompletableFuture<>();
        final CompletableFuture<CommandResultCode> future2 = new CompletableFuture<>();

        publishPersistCmd(apiCommand, (seq1, seq2) -> {
            promises.put(seq1, cmd -> future1.complete(cmd.resultCode));
            promises.put(seq2, cmd -> future2.complete(cmd.resultCode));
        });

        return future1.thenCombineAsync(future2, CommandResultCode::mergeToFirstFailed);
    }
 
源代码4 项目: openjdk-jdk9   文件: CompletableFutureTest.java
public <T,U,V> CompletableFuture<V> thenCombine
    (CompletableFuture<T> f,
     CompletionStage<? extends U> g,
     BiFunction<? super T,? super U,? extends V> a) {
    return f.thenCombineAsync(g, a);
}
 
源代码5 项目: openjdk-jdk9   文件: CompletableFutureTest.java
public <T,U,V> CompletableFuture<V> thenCombine
    (CompletableFuture<T> f,
     CompletionStage<? extends U> g,
     BiFunction<? super T,? super U,? extends V> a) {
    return f.thenCombineAsync(g, a, new ThreadExecutor());
}
 
源代码6 项目: j2objc   文件: CompletableFutureTest.java
public <T,U,V> CompletableFuture<V> thenCombine
    (CompletableFuture<T> f,
     CompletionStage<? extends U> g,
     BiFunction<? super T,? super U,? extends V> a) {
    return f.thenCombineAsync(g, a);
}
 
源代码7 项目: j2objc   文件: CompletableFutureTest.java
public <T,U,V> CompletableFuture<V> thenCombine
    (CompletableFuture<T> f,
     CompletionStage<? extends U> g,
     BiFunction<? super T,? super U,? extends V> a) {
    return f.thenCombineAsync(g, a, new ThreadExecutor());
}