import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.concurrent.*;
class Main {
public static void main(String[] args) throws ExecutionException, InterruptedException {
CompletableFuture<String> whatsYourNameFuture = CompletableFuture.supplyAsync(()-> {
// public String get() {
System.out.println("in promise");
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new IllegalArgumentException(e);
}
return "Rajeev";
// }
});
CompletableFuture<String> promiseExample = CompletableFuture.supplyAsync(()-> {
//public String get() {
System.out.println("in promise");
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
throw new IllegalArgumentException(e);
}
return "Kumar";
// }
});
CompletableFuture<String> result = whatsYourNameFuture.thenCombine(promiseExample, (str1, str2) -> {
String name=str1 + " " + str2;
return name;
});
System.out.println("Value- " + result.get());
//System.out.println(welcomeText.get());
}
}