Afr*_*mad 8 python async-await python-asyncio python-3.6
我是Python的新手.我用asyncio编写了一个简单的报废程序.这是我的代码片段
loop = asyncio.get_event_loop()
task = loop.create_task(conSpi.parse(arguments.url))
value = loop.run_until_complete(asyncio.wait([task]))
loop.close()
Run Code Online (Sandbox Code Playgroud)
我想打印返回值的结果.收集打印变量的值,打印出类似这样的内容
{<Task finished coro=<ConcurrentSpider.parse() done,
defined at /home/afraz/PycharmProjects/the-lab/concurrentspider.py:28> result=3>}
Run Code Online (Sandbox Code Playgroud)
`
我怎样才能得到结果而不打印?
Sam*_*man 15
最简单的方法是写
value = loop.run_until_complete(task)
Run Code Online (Sandbox Code Playgroud)
只有在您想要等待一项任务时才有效.如果您需要多个任务,则需要正确使用asyncio.wait.它返回一个包含已完成和待定期货的元组.但是,默认情况下,挂起的期货将为空,因为它等待所有期货完成.
所以像
done, pending = loop.run_until_complete(asyncio.wait( tasks))
for future in done:
value = future.result() #may raise an exception if coroutine failed
# do something with value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4910 次 |
| 最近记录: |