[Twisted-Python] chainDeferred does not pass result
"Lutz Pälike"
lutz_p at gmx.net
Thu May 29 10:06:56 EDT 2008
I was trying to chain two Deferreds together but there is a problem with chainDeferred().
If i add Deferred object b in the middle of the call chain of object a, the result is correctly passed on to the branched call chain of b but the call chain of a is broken because b.callback() does not return a result.
Am i missing something or is this a bug ?
The example below illustrates the problem. If you uncomment the line
deferred_a.chainDeferred(deferred_b)
you should see
result: None
Cheers,
Lutz
#----------------
from twisted.internet import defer, reactor
def square(res):
return res*res
def on_result(res):
print "result: ", res
return res
def on_error(err):
print err
return err
deferred_a = defer.Deferred()
deferred_b = defer.Deferred()
deferred_a.addCallback(square)
# deferred_a.chainDeferred(deferred_b)
deferred_a.addCallbacks(on_result, on_error)
reactor.callLater(0.0, deferred_a.callback, 3)
reactor.callLater(1.0, reactor.stop)
reactor.run()
#----------------
--
Super-Aktion nur in der GMX Spieleflat: 10 Tage für 1 Euro.
Über 180 Spiele downloaden: http://flat.games.gmx.de
More information about the Twisted-Python
mailing list