
On Jan 29, 2004, at 10:09 AM, Glyph Lefkowitz wrote:
Fabrice Coudert wrote:
So, I restate the probleme with chainDeferred : chainDeferred(d) is equivalent to addCallbacks(d.callback, d.errback), but this two methods are not really sort of callback methods for deferred coz they didn't return a result.
This is not a problem, this is a specification of the way it works. chainDeferred is a holdover from before one could sensibly return one Deferred from the callback to another. If you want to add callbacks in some other way, don't use chainDeferred.
So, the right way to do what he asks is...? Perhaps this? my_defer = getADeferredForSomething() new_defer = defer.Deferred() new_defer.addCallback(preprocessing) new_defer.addCallback(lambda x: return my_defer) new_defer.addCallback(postprocessing) my_defer = new_defer James