python3 - 从异步方法获取结果
python3 -Get result from async method
我是 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()
我想打印 value.Rather 打印变量返回的结果
值,它打印出这样的东西
{<Task finished coro=<ConcurrentSpider.parse() done,
defined at /home/afraz/PycharmProjects/the-lab/concurrentspider.py:28> result=3>}
`
如何只得到结果而不打印其余部分?
最简单的方法是写
value = loop.run_until_complete(task)
只有当你想等待一项任务时才有效。
如果您需要完成一项以上任务,则需要正确使用 asyncio.wait。
它 returns 一个包含已完成和未决期货的元组。但是默认情况下,挂起的期货将是空的,因为它等待所有期货完成。
所以像
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
我是 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()
我想打印 value.Rather 打印变量返回的结果 值,它打印出这样的东西
{<Task finished coro=<ConcurrentSpider.parse() done,
defined at /home/afraz/PycharmProjects/the-lab/concurrentspider.py:28> result=3>}
`
如何只得到结果而不打印其余部分?
最简单的方法是写
value = loop.run_until_complete(task)
只有当你想等待一项任务时才有效。 如果您需要完成一项以上任务,则需要正确使用 asyncio.wait。 它 returns 一个包含已完成和未决期货的元组。但是默认情况下,挂起的期货将是空的,因为它等待所有期货完成。
所以像
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