- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写一个库,我希望最终用户能够有选择地使用它,就好像它的方法和函数不是协程一样。
例如,给定这个函数:
@asyncio.coroutine
def blah_getter():
return (yield from http_client.get('http://blahblahblah'))
不想在自己的代码中使用任何异步功能的最终用户仍然需要导入 asyncio 并运行:
>>> response = asyncio.get_event_loop().run_until_complete(blah_getter())
如果我可以在 blah_getter
内部确定我是否作为协程被调用并做出相应 react ,那就太好了。
所以像这样:
@asyncio.coroutine
def blah_getter():
if magically_determine_if_being_yielded_from():
return (yield from http_client.get('http://blahblahblah'))
else:
el = asyncio.get_event_loop()
return el.run_until_complete(http_client.get('http://blahblahblah'))
最佳答案
你需要两个函数——异步协程和同步正则函数:
@asyncio.coroutine
def async_gettter():
return (yield from http_client.get('http://example.com'))
def sync_getter()
return asyncio.get_event_loop().run_until_complete(async_getter())
magically_determine_if_being_yielded_from()
实际上是 event_loop.is_running()
但我强烈建议不要在同一个函数中混合使用同步和异步代码。
关于python - 如何编写可选择充当常规函数的 asyncio 协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155138/
如果没有子类化dict,一个类需要被认为是一个映射,以便它可以通过**传递给一个方法。 from abc import ABCMeta class uobj: __metaclass__ =
所以。我正在研究 PHP/MySQLi atm,为此我正在做一个电影数据库。我是 PHP 新手,我已经在网上搜索了 3 天有同样问题的人,但我没有找到任何东西。 我的问题是我需要一个编辑按钮,这样就可
我的代码是这样的: void some_func(void *source) { ... double *casted = reinterpret_cast(source);
我无法准确理解 array_splice 和 array_slice 的作用。据我所知,array_splice 应该在取出某些元素后返回一个数组,而 array_slice 应该检索数组的一部分。
我从数据库中检索了 54 项: items = Item.where(condition) items.count == 54 and then: items.each {|i| i.tag_list
我在 HTML 表单中有一个简单的图像,充当按钮。当单击普通按钮时,我会使用 onClick 属性对其进行操作,但是对于我的图像,当您单击它们时,onClick 会起作用,但图像也会提交表单,而实际上
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我正在使用一个名为 acts_as_votable 的 gem让我的模型可以投票。 目前一切正常。 但是每次有人为帖子投票时,页面都必须刷新。如何在不刷新页面的情况下进行投票。我可以添加一个简单的 j
我的 bootstrap 3 页面在第一次页面加载时仅显示一个 div。当我单击“打开下一个 block ”按钮时,会显示另一个 div,如果我单击第二个 div,则会显示第三个 div。这样我总共可
我主要对 感兴趣 a11y 方面 因此,您可能知道,有时您可能希望有一个用作 anchor 的按钮。 这些是解决这个问题的 4 种方法(我能想到): 1. anchor 元素内的按钮 Button 2
在我的 main.storyboard 中,我有一个 UIImage View ,它只是一个通用的 Facebook 登录按钮。但是,我很困惑,因为使用这些通用步骤 override func vie
问题 我有这个 bash 脚本: ACTIVE_DB=$(grep -P "^[ \t]*db.active" config.properties | cut -d= -f2 | tr -s " ")
我目前正在使用 inline-block instead of floats 构建一个使用漂亮网格结构的站点. 简而言之,我的网格是这样工作的(JSFiddle) : HTML
我最近开始使用 Bootstrap 并且没有遇到任何问题,除了我遇到的这个问题。我已经使用它建立了自己的个人网站,并将其设计为响应式的,到目前为止,它在所有方面看起来都很棒。 但我遇到的问题是,从 9
这是一个不幸的问题,但我看不到任何其他解决方法。 基本上,我使用 Kendo UI 面板栏来创建可扩展列表。问题是,当您使用 作为子列表,面板栏功能不起作用。 fiddle 示例: http://js
我正在尝试获取一个 16 位长的数字 0x1122334455667788 并将其移位以说明小端编号。 使用下面的示例代码从内存单元中加载数字 void endianCompute(memory_t
我目前正在使用一堆输入文本字段,我想将其更改为 DIV,但我的大部分 JS 函数都使用 document.getElementById("inputField1").value每当输入字段的值设置如下
是否可以使用 HTML5 (或任何其他元素)就像一个 iframe,但内容是从它的子元素而不是从 URL 加载的?例如,如果您要在主文档中进行此设置: 以及foo.html的内容是: 主文档会显
我正在尝试使用 EJB session Bean 的示例。我想看看他们的区别。我的基本项目图如下; http://img109.imageshack.us/img109/8262/85220418.p
我们公司有一个项目,现在使用 nginx 作为反向代理来提供静态内容和支持 comet 连接。我们使用长轮询连接来摆脱不断的刷新请求,让用户立即获得更新。 现在,我知道已经为 Node.js 编写了很
我是一名优秀的程序员,十分优秀!