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. Python扭曲連接永不觸發
- 5. 查找與扭曲的重複
- 6. 與扭曲刪除重複行的GnuWin32
- 7. 扭曲和扭曲Movieclip
- 8. 如何添加超時扭曲延遲
- 9. 扭曲的,延遲的完全回溯
- 10. 扭曲不發送數據
- 11. NavigationController推扭曲背景圖像
- 12. 如何扭曲資源對象render_Post返回一定的價值有些推遲
- 13. 扭曲的Python - 如果推遲超出範圍,它會被解僱嗎?
- 14. CATiledlayer扭曲CGPath
- 15. 學習扭曲
- 16. 在扭曲
- 17. JTable autoresize,扭曲?
- 18. 扭曲在https
- 19. python3.5扭曲?
- 20. 使用扭曲
- 21. 修復Leptonica中的本地扭曲1.68
- 22. 的Java文件複製扭曲文件
- 23. jQuery的刪除表重複一些扭曲
- 24. 重複使用扭曲了多個進程的UNIX套接字
- 25. 將http重定向到https以扭曲
- 26. 偵聽多重扭曲端點
- 27. .htaccess:用扭曲重寫到子目錄
- 28. FFMPEG在重新採樣音頻時發生扭曲
- 29. CUDA扭曲發散和時鐘週期
- 30. 扭曲 - 發送文件層次結構
它的字面意思是四年,但有人給了我一個非常滿意的[這裏](http://stackoverflow.com/a/27996359/2419669)。 – yangmillstheory 2015-01-17 20:19:22