from twisted.internet import defer, reactor
def startWithMe(ignore):
messages = ["hello", "everyone", "end"]
def andMe(ignore):
if messages:
print "M:", messages.pop()
d = defer.Deferred()
d.addCallback(andMe)
reactor.callLater(0.5, d.callback, 1)
return d
d1 = defer.Deferred()
reactor.callLater(0.5, d1.callback, 1)
return defer.DeferredList([andMe(None), d1], fireOnOneErrback=True)
def endWithMe(ignore):
print ignore, ";This is the end."
d = defer.Deferred()
d.addCallback(startWithMe)
d.addCallback(endWithMe)
d.callback(1)
reactor.run()