
On Mon, Jun 30, 2008 at 8:02 PM, L. Daniel Burr <ldanielburr@mac.com> wrote:
On Mon, 30 Jun 2008 17:54:33 -0500, Nathan <nathan.stocks@gmail.com> wrote:
On Mon, Jun 30, 2008 at 4:20 PM, Terry Jones <terry@jon.es> wrote:
You're not using deferreds properly. In the simple/typical case, when you call a function that returns a deferred, you will want to add (at least) a
I don't think that's true. Jean-Paul was the one who told me to do it that way in the first place:
http://twistedmatrix.com/pipermail/twisted-python/2008-April/017304.html
Terry (hi Terry) is correct here. Your interpretation of Jean-Paul Calderone's message is flawed, although I certainly understand how the misinterpretation could occur. There's a big difference between the AMP example in that thread, and the example code you posted to this thread.
Oh, ok. My apologies, Terry. After staring for awhile I think I figured out what's going on. First, everywhere I use this method in real code is to provide a final AMP response (which is why it works for me). I think what Jean Paul meant was that the AMP code looks at the object that the AMP responder returns, and if that object is a deferred, then the underlying AMP code (that you don't normally see) waits for the deferred's callback value and uses that as the actual return value of the AMP responder. I had mistakenly taken this as a more general method of returned-deferreds-resolving-into-their-callback-values, which is why everyone is taking issue with my hasty AMP-less pseudo-code. I must say, I've had more trouble grasping the nuances of deferreds and other twisted objects than any other framework or language I've ever worked with. I also spend much more time _in vain_ going through the docs and api reference than other languages. At least there's a great mailing list! So back to my original task -- I'm trying to get that same behaviour in AMP when using a deferred list -- but I could probably just create a deferred and return it as the AMP response (because AMP will wait for the deferred's callback value), and then fire a callback with my correct answer once I've processed my deferred list. Thus, I could avoid figuring out how AMP handles deferred-lists-returned-from-responders altogether. Have I got it straight now? ~ Nathan