2
後所以,我有一個回調鏈中,這樣的事情:Python的扭曲 - 返回回調鏈errback可
deferred = create_deferred()
deferred.addCallback(cb1)
deferred.addCallback(cb2)
deferred.addCallback(cb3)
deferred.addCallback(cb4)
deferred.addErrback(start)
deferred.addErrback(eb1)
deferred.addBoth(end)
在輸入start()方法開始 - 這也是一個errback可。首先,創建延期。它有4個處理步驟,從cb1到cb4。如果一切順利,輸入應該經過4個處理步驟,最後在addBoth結束()。
如果沿途出現問題(在cb1或cb2等),他們應該去start()輸入將被「重試」幾次。如果沒有更多的重試,或者start()中發生了錯誤,它應該轉到eb1而不是end()。
我的問題是,即使對於某個輸入有重試,它仍然會到達eb1並且比結束還要多。
如何在遇到錯誤的情況下使延遲返回到回調鏈?
現在,如果,例如,我在CB2錯誤,推遲去啓動,但即使它仍然有重試,但還是到EB1。我怎樣才能解決這個問題?
謝謝!
這聽起來像一個有趣的問題,但是http://sscce.org對於真正理解問題的具體情況以確保提出的解決方案能夠起作用會非常有用。 – Glyph