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

Reply via email to