> Hi Brian > > Forgive me for butting in, but.... why :-) > > Helpful butting in is more than fine..
> Importing the reactor is no big deal, and if you use task.deferLater, apart > from not having to write any code you also have the advantage of being able > to pass it a result that the deferred will be called with. > > For this reason you can also put a task.deferLater result into a callback > chain to achieve an async sleep and it will duly pass the result along. > E.g.: > > from twisted.internet import reactor, task, defer > > d = somethingReturningADeferred() > d.addCallback(lambda x: task.deferLater(reactor, 5.0, defer.passthru, x)) > > Ahh, I see. I saw the signature of deferLater and the Clock class in task and I thought that I would have to create a Clock instance by hand. That I can simply use the reactor (which of course is already imported and running in my code) simplifies the usage of deferLater. Thanks! But, even with this, I do like the flow and readability of code that uses sleep like this: @inlineCallbacks def f(): result1 = yield somethingDeferred() yield sleep(1.0) result2 = yield anotherDeferred(result2) Rather than the way that deferLater looks: @inlineCallbacks def f(): result1 = yield somethingDeferred() result2 = yield task.deferLater(reactor, 1.0, anotherDeferred, result2) But, the difference at this point is entirely aesthetic. One question though - can someone explain the need/usage cases for task.Clock and the other things in task? Cheers, Brian > Terry > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python