[Twisted-Python] Resource.render() returning NOT_DONE_YET

Matthias Urlichs smurf at noris.de
Fri May 9 11:02:30 EDT 2003


Hi,

Clark C. Evans schrub am Mon, 28 Apr 2003 16:09:35 +0000:
>   2.  Alternatively, allow a Deferred to be a return
>       value.  Then the underlying caller can add result.finish() to the
>       deferred chain.   This has the advantage of not requiring finish()
>       to really be managed.

I think that wouldn't work. Consider:

	def render(self,req):
		d = somewhere.GetDeferredData()
		d.addCallback(self.render_more,req)
		return d
	def render_more(self,data,req):
		d = somewhere.GetMoreDeferredData(data)
		d.addCallback(self.render_even_more,req)
		return d
	def render_even_more(self,data,req):
		req.write("Done!")

This ends up calling req.finish() befor req.write().

-- 
Matthias




More information about the Twisted-Python mailing list