[Twisted-Python] addCallbacks issue

Sorin C. soso_pub at yahoo.com
Tue Apr 13 02:19:30 MDT 2004


Hi,

Yes, I saw this bit of documentation but what I
understand from it is that if you chain multiple
addCallbacks to the same deferred then the error
handler from the last addCallbacks call will be
called. What am I missing?
Anyway, the API docs say:

"""
addCallbacks(self, callback, errback=None,
callbackArgs=None, callbackKeywords=None,
errbackArgs=None, errbackKeywords=None, asDefaults=0)

Add a pair of callbacks (success and error) to this
Deferred.
"""

So shouldn't 

addCallbacks(success, failure)

be equivalent with

addCallback(success)
addErrback(failure)

?
--- Christopher Armstrong <radix at twistedmatrix.com>
wrote:
> Sorin C. wrote:
> > Any idea why addCallbacks fails to bound the error
> > handler? I use Twisted 1.2.0.
> 
> Read the documentation.
> 
> http://twistedmatrix.com/documents/howto/defer
> 
> """
> There's another potential gotcha here. There's a
> method 
> twisted.internet.defer.Deferred.addCallbacks which
> is similar to, but 
> not exactly the same as, addCallback followed by
> addErrback. In 
> particular, consider these two cases:
> 
> # Case 1
> d = getDeferredFromSomewhere()
> d.addCallback(callback1)
> d.addErrback(errback1)
> d.addCallback(callback2)
> d.addErrback(errback2)
> 
> # Case 2
> d = getDeferredFromSomewhere()
> d.addCallbacks(callback1, errback1)
> d.addCallbacks(callback2, errback2)
> 
> If an error occurs in callback1, then for Case 1
> errback1 will be called 
> with the failure. For Case 2, errback2 will be
> called. Be careful with 
> your callbacks and errbacks.
> 
> """
> 
> -- 
>   Twisted | Christopher Armstrong: International Man
> of Twistery
>    Radix  |          Release Manager,  Twisted
> Project
> ---------+           http://radix.twistedmatrix.com/



	
		
__________________________________
Do you Yahoo!?
Yahoo! Small Business $15K Web Design Giveaway 
http://promotions.yahoo.com/design_giveaway/




More information about the Twisted-Python mailing list