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
