据我所知,map和imap之间的区别是,map等待所有请求完成,然后返回有序的数据。而imap会立即返回数据并减少订单。
当我使用:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.map(rs)在所有请求完成后立即使用钩子,并调用回调函数。
当我使用:
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.imap(rs)然后,没有一个请求被发送。
根据文档地图和imap具有相同的API。
这是预期的行为吗?我不应该在imap中使用钩子吗?我正在使用Python3.5。
发布于 2017-01-31 00:22:46
据我所知,
map和imap之间的区别是,map等待所有请求完成,然后返回有序的数据。而imap会立即返回数据并减少订单。
这不是真的。map立即执行所有请求并返回结果(这可能需要一段时间,所以您可能会说“等待所有请求完成”)。
但是,imap返回一个生成器,并根据需要只执行请求()。因此,在发送请求之前,您必须开始对生成器进行迭代。在生成器上循环以获得结果:
for single_request in r:
# so something with "single_request"https://stackoverflow.com/questions/41947557
复制相似问题