You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Jorge Bay (JIRA)" <ji...@apache.org> on 2016/10/06 07:36:20 UTC

[jira] [Commented] (TINKERPOP-1490) Provider a Future based Traversal.async(Function) terminal step

    [ https://issues.apache.org/jira/browse/TINKERPOP-1490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15551199#comment-15551199 ] 

Jorge Bay commented on TINKERPOP-1490:
--------------------------------------

{{async}} is a reserved keyword in many languages:
- In C# 5+ and above.
- In [Ecmascript|https://tc39.github.io/ecmascript-asyncawait/], already [implemented in some of the Javascript runtimes like Microsoft Chakra|https://blogs.windows.com/msedgedev/2015/09/30/asynchronous-code-gets-easier-with-es2016-async-function-support-in-chakra-and-microsoft-edge/#Ld5l0SCaX4soGX2p.97].
- It looks like it's also going to be a [reserved keyword in Python 3.7|https://www.python.org/dev/peps/pep-0530/].

Maybe something like {{toListAsync()}}, as async counterpart of {{toList()}}, and {{getAsync()}}, as a counterpart of {{next()}} (instead of {{nextAsync()}} to avoid to give the impression that is an "async iterator") ?


> Provider a Future based Traversal.async(Function<Traversal,V>) terminal step
> ----------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1490
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1490
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: language-variant, process
>    Affects Versions: 3.2.2
>            Reporter: Marko A. Rodriguez
>
> [~mbroecheler] had the idea of adding a {{Traversal.async()}} method. This is important for not only avoiding thread locking on a query in Gremlin, but also, it will allow single threaded language variants like Gremlin-JavaScript to use callbacks for processing query results.
> {code}
> Future<List<String>> result = g.V().out().values("name").async(Traversal::toList)
> {code}
> {code}
> Future<List<String>> result = g.V().out().name.async{it.toList()}
> {code}
> {code}
> g.V().out().values('name').async((err,names) => {
>   // I don't know JavaScript, but ...
>   return list(names);
> }) 
> {code}
> ...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)