我正在制作一种 lisp 方言,我不能使用任何特殊语法,只能使用函数。我正在尝试添加异步编程。
我可以使用
asyncio.coroutine
将函数转换为异步函数。
asyncio.coroutine(lambda: print('Hello, world!'))
我也可以在它的内部使用异步函数。
asyncio.coroutine(lambda: asyncio.sleep(1))
但问题是它们将在后台运行。因此,如果通过使用
do
块,我执行两次 asyncio.sleep(1)
,程序将只等待 1 秒,因为它们都在后台运行。
这是在异步编程中使用
await
/yield from
的时候,但它是语法而不是函数,因此我不能使用它。我正在寻找功能替代品。
ChatGPT 无法解决它,我查看了以下 StackOverFlow 帖子。