我必须让我的应用程序同时与 Python 2 和 3 兼容。
我有一些类似下面的代码,我希望能够异步调用一个函数,然后等待我所有的 futures 被解析。
代码:
import requests
# This would return a future
def get_xhr(url):
return requests.get('https://www.{}.com'.format(url))
# This would return an array of futures
def get_search_engines():
urls = ['google', 'yahoo', 'bing']
return [get_xhr(url) for url in urls]
# Here I want to wait for all the futures to be resolved
get_search_engines()
print('All requests are done')
Asyncio async/await 似乎只与 Python 3 兼容。
能够运行与 python 2/3 兼容的异步函数的最佳方法是什么?
最佳答案
对于 Python 2,有 Twisted或 Tornado .
但也许在您的用例中,线程(threading、concurrent.futures)将是最简单的解决方案。
另请记住,Python 2 将在 2019 年底停止维护。
关于2019 年的 Python 2/3 异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54165742/