首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grequests库中的imap与map

grequests库中的imap与map
EN

Stack Overflow用户
提问于 2017-01-31 00:00:13
回答 1查看 4.5K关注 0票数 7

据我所知,mapimap之间的区别是,map等待所有请求完成,然后返回有序的数据。而imap会立即返回数据并减少订单。

当我使用:

代码语言:javascript
复制
urls = [...some_data...]
rs = (grequests.get(u,, hooks=dict(response=callback_f)) for u in urls)
r = grequests.map(rs)

在所有请求完成后立即使用钩子,并调用回调函数。

当我使用:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 00:22:46

据我所知,mapimap之间的区别是,map等待所有请求完成,然后返回有序的数据。而imap会立即返回数据并减少订单。

这不是真的。map立即执行所有请求并返回结果(这可能需要一段时间,所以您可能会说“等待所有请求完成”)。

但是,imap返回一个生成器,并根据需要只执行请求()。因此,在发送请求之前,您必须开始对生成器进行迭代。在生成器上循环以获得结果:

代码语言:javascript
复制
for single_request in r:
    # so something with "single_request"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41947557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档