Deferred
s是在Twisted中执行异步处理的好方法。然而,就像名字所暗示的那样,它们是延迟计算,它只运行并终止一次,一次触发回调。如果我有重复计算,就像点击一个按钮一样?是否有任何类似Deferred
的对象可以重复触发,每当它被触发时都调用附加到它的所有回调函数?扭曲:推迟重复触发?
5
A
回答
3
我已经设置了现在。对于我有限的使用情况,它可以做我想做的事情。
class RepeatedDeferred:
def __init__(self):
self.callbacks = []
self.df = defer.Deferred()
def addCallback(self, callback):
self.callbacks.append(callback)
self.df.addCallback(callback)
def callback(self, res):
self.df.callback(res)
self.df = defer.Deferred()
for c in self.callbacks:
self.df.addCallback(c)
有人让我知道这是否可怕。
0
什么,你可能会寻找的是defer.inlineCallbacks
,它允许您使用生成器来创建Deferreds的顺序链。基本上,你可以创建一个永不结束(或有条件结束)的生成器,并从中继续生成Deferred。
在inlineCallbacks
的krondo.com有一个很好的写法。
+0
heh真棒功能。这让我想起了Haskell的monad,有点儿。尽管如此,我不认为这是我正在寻找的东西。当它不那么晚,我会更多地考虑它 – Claudiu 2010-08-19 03:28:31
相关问题
- 1. Python扭曲,reactor.callLater()不推迟
- 2. Python扭曲推迟:需要说明
- 3. 蟒蛇扭曲推迟和getProcessOutputAndValue问题
- 4. 扭曲:等待推迟到'完成'
- 5. Python扭曲连接永不触发
- 6. T/SQL - 查询重复与扭曲
- 7. 查找与扭曲的重复
- 8. 与扭曲删除重复行的GnuWin32
- 9. 扭曲的Python暂停/推迟反应堆
- 10. 推迟在扭曲的代码到一个特定的线程
- 11. 你需要在pymongo中推迟.count()并扭曲吗?
- 12. 扭曲和扭曲Movieclip
- 13. 扭曲的,延迟的完全回溯
- 14. 如何添加超时扭曲延迟
- 15. 扭曲不发送数据
- 16. NavigationController推扭曲背景图像
- 17. 触摸坐标/位置扭曲
- 18. 扭曲的Python - 如果推迟超出范围,它会被解雇吗?
- 19. 如何扭曲资源对象render_Post返回一定的价值有些推迟
- 20. 扭曲的关机事件没有触发
- 21. 扭曲和ULIMIT
- 22. ImageMagick扭曲
- 23. 扭曲效果
- 24. 学习扭曲
- 25. 背景扭曲
- 26. 扭曲在https
- 27. 在扭曲
- 28. 使用扭曲
- 29. JTable autoresize,扭曲?
- 30. 扭曲字体
它的字面意思是四年,但有人给了我一个非常满意的[这里](http://stackoverflow.com/a/27996359/2419669)。 – yangmillstheory 2015-01-17 20:19:22