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.
Disclaimer: I am a trio dev, though.
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
call_a_asynch_function(with, some, parameters)
.then(with_the_result_when_it_comes => do_something)
some_other_codre_which_runs_synchronously
and_some_more
seems easier to my eye than the whole idea of calling await in async functionsI 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.