I was hoping (with Python, not trio in particular) that it would all end up with something like Promises which make coding really easy but I guess not.
This is of course a matter of personal taste, but having
Python doesn't really have the syntax for it, the promise library uses lambda which is pretty bulky: https://pypi.org/project/promise/
I wonder if you could do something nicer using the `with` syntax?
with async_fn(with, params) as result:
do_something(result)
this_runs_sync()
then_this_does()
It's still going to be annoying when they nest, maybe an async with which makes its whole content act like promises with `then` calls?
async with fetch_thing() as result:
json = async_jsonify(result)
post_result = async_post(json)
json_result = async_jsonify(post_result)
then_sync_stuff()
Though you also want to be able to return promises, I suppose you could allow `return async with`, and you also need to be able to catch them. Not sure if this makes any sense to look further at, but I don't think we're getting arrow functions and the JS syntax without those is pretty clunky.
Comments
There are other implementations, such as Curio (https://github.com/dabeaz/curio) or Trio (https://github.com/python-trio/trio). Both are simpler and more hand-holdy (and less footgun) than asyncio.
Disclaimer: I am a trio dev, though.
Thanks, the trio tutorial is really enlightening!
I was hoping (with Python, not trio in particular) that it would all end up with something like Promises which make coding really easy but I guess not.
This is of course a matter of personal taste, but having
seems easier to my eye than the whole idea of calling await in async functionsPython doesn't really have the syntax for it, the promise library uses lambda which is pretty bulky: https://pypi.org/project/promise/
I wonder if you could do something nicer using the `with` syntax?
It's still going to be annoying when they nest, maybe an async with which makes its whole content act like promises with `then` calls? Though you also want to be able to return promises, I suppose you could allow `return async with`, and you also need to be able to catch them. Not sure if this makes any sense to look further at, but I don't think we're getting arrow functions and the JS syntax without those is pretty clunky.