如何在异步函数中使用 'yield'?

18 浏览
0 Comments

如何在异步函数中使用 'yield'?

我想要使用生成器的yield和异步函数。我阅读了这个话题,并编写了以下代码:

import asyncio
async def createGenerator():
    mylist = range(3)
    for i in mylist:
        await asyncio.sleep(1)
        yield i*i
async def start():
    mygenerator = await createGenerator()
    for i in mygenerator:
        print(i)
loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(start())
except KeyboardInterrupt:
    loop.stop()
    pass

但是我得到了错误:

SyntaxError: 'yield' inside async function

如何在异步函数中使用yield生成器?

0