[Twisted-Python] combining addCallback and callLater ?
Amaury Forgeot d'Arc
amauryfa at gmail.com
Tue Dec 16 10:09:08 MST 2008
Hi,
Arye wrote:
> I would like to add a callback that delays the chain. In other words I would
> like to combine:
> defer.Deferred().addCallback
> and reactor.callLater
>
> The only solution I came up with was the code below.
>
> There must be a more elegant way to do this.
> Any ideas would be greatly appreciated,
> All the best,
>
> *************************begin
> from twisted.internet import reactor, defer
>
> def printResults(results, arg):
> print "In printResults results=", results
> print "In printResults arg=", arg
> if arg == 2:
> reactor.stop()
>
>
> def fireLater(results, d2):
> print "In fireLater results=", results
> reactor.callLater(5, d2.callback, "firelater")
>
> d1 = defer.Deferred()
> d2 = defer.Deferred()
> d2.addCallback( printResults, 1)
> d2.addCallback( printResults, 2)
>
>
> d1.addCallback(fireLater, d2)
> d1.callback("fire")
>
> reactor.run()
> *************************end
I've already written this some times:
d1.addCallback(5, reactor.callLater, d2.callback, "firelater")
Hope this, helps,
--
Amaury Forgeot d'Arc
More information about the Twisted-Python
mailing list