Hi Ted, Thanks - yes regarding renaming the variable, and changing the type.
The other issue is that most clients return a Future, not a CompletableFuture. So should I do the bit of extra code to show using a CompletableFuture with a Future? — Ken > On Apr 14, 2018, at 9:13 AM, Ted Yu <yuzhih...@gmail.com> wrote: > > bq. resultFuture.thenAccept( (String result) -> { > > I think the type of variable for the above call should be CompletableFuture. > Meaning, the variable currently named resultFuture should be renamed so > that the intention is clearer. > > bq. resultFuture.complete(Collections.singleton(new > Tuple2<>(str, result))); > > Looking at existing code in unit tests, the complete() call is on the > parameter. > > Cheers > > On Sat, Apr 14, 2018 at 8:34 AM, Ken Krugler <kkrugler_li...@transpac.com> > wrote: > >> Hi devs, >> >> https://ci.apache.org/projects/flink/flink-docs-release-1.4/dev/stream/ >> operators/asyncio.html <https://ci.apache.org/projects/flink/flink-docs- >> release-1.4/dev/stream/operators/asyncio.html> >> >> Has this example of asyncInvoke: >> >>> @Override >>> public void asyncInvoke(final String str, final >> ResultFuture<Tuple2<String, String>> resultFuture) throws Exception { >>> >>> // issue the asynchronous request, receive a future for result >>> Future<String> resultFuture = client.query(str); >>> >>> // set the callback to be executed once the request by the >> client is complete >>> // the callback simply forwards the result to the result future >>> resultFuture.thenAccept( (String result) -> { >>> >>> resultFuture.complete(Collections.singleton(new >> Tuple2<>(str, result))); >>> >>> }); >>> } >> >> 1. there’s a resultFuture parameter, and a resultFuture variable. >> >> 2. resultFuture.thenAccept() is a method available for CompletableFuture < >> https://docs.oracle.com/javase/8/docs/api/java/util/ >> concurrent/CompletableFuture.html>, not Future. >> >> I can fix this up, but I’m wondering what you think the code should do, >> assuming there’s a typical client that returns a Future vs. a >> CompletableFuture. >> >> e.g. I could use CompletableFuture.supplyAsync(new Supplier<String>() { } >> with a get that calls the Future’s get(). >> >> Thanks, >> >> — Ken >> >> -------------------------------------------- >> http://about.me/kkrugler >> +1 530-210-6378 >> >> -------------------------------------------- http://about.me/kkrugler +1 530-210-6378