发布时间:2019-08-22 08:04:22编辑:auto阅读(2207)
一个协程里可以启动另外一个协程,并等待它完成返回结果,采用await关键字,例子如下:
import asyncio
async def outer():
print('in outer')
print('waiting for result1')
result1 = await phase1()
print('waiting for result2')
result2 = await phase2(result1)
return (result1, result2)
async def phase1():
print('in phase1')
return 'result1'
async def phase2(arg):
print('in phase2')
return 'result2 derived from {}'.format(arg)
event_loop = asyncio.get_event_loop()
try:
return_value = event_loop.run_until_complete(outer())
print('return value: {!r}'.format(return_value))
finally:
event_loop.close()
in outer
waiting for result1
in phase1
waiting for result2
in phase2
return value: ('result1', 'result2 derived from result1')
await关键字添加了一个新的协程到循环里,而不需要明确地添加协程到这个事件循环里。
上一篇: python的文件类型
下一篇: mac下安装配置python3.7
52054
51920
42147
38994
33493
30444
29080
24110
24018
22369
117°
150°
163°
148°
174°
161°
182°
187°
186°
199°