0
我有一個管理模塊的應用程序調用異步:扭曲的遞延鏈接
- 它請求延遲觸發本身
- 追加定製的回調
- 檢查返回的代碼,看看是否= CONTINUE,否則處理錯誤
這是返回延遲到主應用程序的代碼:
def xxfi_connect(self, hostname):
d = defer.Deferred()
d.callback(Milter.ReturnCodes.CONTINUE)
return d
要異步添加一些代碼,我需要連接我的函數調用遞延函數是這樣的:
d = defer.Deferred()
d.addCallback(self.run_mods, application.L_CONNECT)
d.callback(Milter.ReturnCodes.CONTINUE)
麻煩的是,迷上了每個函數收到包含回調參數一個參數(application.L_CONNECT)。
是否有可能實現這一點,而無需在每個函數調用中傳輸返回碼?
理想情況下,我想我的回調函數是這樣的:
def run_mods(self, level):
pass
代替
def run_mods(self, code, level):
pass
因爲code
(Milter.ReturnCodes.CONTINUE)只需要在最後的鏈接
謝謝你,這確實是我能夠做到的,但如果更一般地,我鏈2推遲,不想從第一個發送給孩子的結果?這可能嗎 ? – kitensei
你可以設置一個回調函數來放棄一些參數,即:'d.addCallback(lambda a,b:b)' – SingleNegationElimination