2011/7/1 Janko Mivšek <[email protected]>

> S, Julian Fitzell piše:
> > 2011/6/30 Janko Mivšek <[email protected]
> >
> >     Whole point is that this is a non-blocking code, in contrast to
> >     continuation based approach like in Seaside, where similar code would
> >     block and wait until dialog component returns answer.
> >
> > Janko, what are you talking about? If it's not blocking, it's just a
> > callback. Of course Seaside can do the same thing: you just use
> > #show:onAnswer:.
>
> Isn't the whole point of Seaside and continuations to enable worklow
> like in below example from the HPI Seaside tutorial?


No. That's the point of one particular feature of Seaside.


> This code is
> blocking until the call: returns, isn't that so?
>

Yes, you are correct.


> From HPI tutorial [1], chapter 5-Forms, figure 5-2 :
>
>        (self call: self taskEditor)
>          ifTrue: [aTask copyFrom: self taskEditor task]
>
> Text bellow: "Even better, Seaside remembers the position in your code
> and runs it from there again, after the called component finished. This
> means, #call: blocks your current component, that is your callback
> evaluation, waits for the called component to be finished, and
> afterwards goes on with your callback. "
>

Of course. #call: both creates a continuation and interrupts the action
phase of request handling (beginning response generation immediately). What
I said was if you don't want to "block", you can use #show:onAnswer:
instead. That method will delegate to the desired component and specify a
block of code to call whenever that component answers. Then it will return
and your code will keep running.

Julian

Reply via email to