On Thu, 12 Apr 2007 15:55:36 -0500, ibu <[EMAIL PROTECTED]> wrote:
from twisted.web2 import server, http, resource, channel, http_headers
from twisted.internet import defer
class Handler:
def __init__(self, request):
self.request = request
def err(self, e):
print "---- errb", e
def getResponse(self, result = None):
rep = "The output which shall be transferred to the browser."
res = http.Response( 200,
{'content-type': http_headers.MimeType('text','plain')},
rep)
print "---- getResponse returning: ", res
return res
def getDeferredResponse(self):
print "---- getDeferredResponse beginning"
d = defer.Deferred()
d.addCallback(self.getResponse)
d.addErrback(self.err)
print "---- getDeferredResponse returning: ", d
return d
Deferreds don't just automatically schedule themselves to
be fired, they fire in response to some event. In other
words some event must occur in which d.callback gets
invoked.
Your code, as written, never causes the Deferred's
callback to be fired.
In this example, you'd need to cause the callback to
be invoked yourself, like so:
def getDeferredResponse(self):
print "---- getDeferredResponse beginning"
d = defer.Deferred()
d.addCallback(self.getResponse)
d.addErrback(self.err)
print "---- getDeferredResponse returning: ", d
reactor.callLater(1, d.callback, None)
return d
Hope this helps,
L. Daniel Burr
_______________________________________________
Twisted-web mailing list
[EMAIL PROTECTED]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web