oh .. got it now. ive never done async-stuff, so i must rethink as u said. ;)
actually im not a webapp-programmer, its not hard but different than
programming a game or demo. no back to topic ;)


my approach:

var rpc = new qxgui.utils.Rpc;

rpc.callAsync( "getMenuXml", null );
rpc.addListener( "completed", function(e)
{
        qxgui.reg.MenuXML.getInstance().setMenu( e.getData() );
});

for some reason the listener doesnt react.

any suggestions?


ps: i appreciate the great support in this mailing list! 

regards
Andreas


Derrell Lipman wrote:
> 
> On Wed, May 6, 2009 at 9:24 AM, sNIk <[email protected]> wrote:
> 
>>
>> hello. at first the code ...
>>
>> qx.Class.define("qxgui.reg.MenuXML",
>> {
>>    extend: qx.core.Object,
>>    type: "singleton",
>>
>>    construct: function()
>>    {
>>        var rpc = new qxgui.utils.Rpc;
>>
>>        rpc.callAsync( "getMenuXml", null, function( result )
>>        {
>>            qxgui.reg.MenuXML.getInstance().setMenu( result );
>>        });
>>    },
>>
>>    members:
>>    {
>>        // eigenschaften
>>
>> ////////////////////////////////////////////////////////////////////////
>>
>>        __menuxml: null,
>>
>>
>>        // methoden
>>
>> ////////////////////////////////////////////////////////////////////////
>>
>>        setMenu: function( menuxml )
>>        {
>>            this.__menuxml = menuxml;
>>        },
>>
>>        getMenu: function()
>>        {
>>            return this.__menuxml;
>>        }
>>
>>    }
>> });
>>
>> usage: var menu = qxgui.reg.MenuXML.getInstance().getMenu();
>>
>> now back to my problem ... when i run alert( menuxml ) in setMenu, i get
>> the
>> right output (some xml stuff). actually, the result is saved in the
>> property
>> __menuxml, right?
>>
>> but alert( menu ) gives me the damn null. any suggestions?
>>
> 
> You're missing the main concept that it takes time (for the purpose of
> this
> discussion, assume 3 seconds even though that's unreasonably high in most
> real scenarios) to issue your remote procedure call, have the backend
> server
> process the request and send back the response, and for the client
> (qooxdoo
> program) to receive the response and call your listener function which
> calls
> setMenu(). Therefore when you call qxgui.reg.MenuXML.getInstance() it
> *begins* that process and returns. Three seconds later, the response
> arrives, your listener is called, and therefore the menu property gets
> set.
> So what's happening when you just issue this:
> 
>   var menu = qxgui.reg.MenuXML.getInstance().getMenu();
> 
> the request has been issued before getMenu() is called but the response
> has
> not yet arrived, so the value of the menu property is still null, thus
> alert(menu) displays null. You are operating in an asynchronous world now,
> not a synchronous one. You must organize your program around events, not
> in-line code that you expect to block until a result arrives.
> 
> Hope that helps.
> 
> Derrell
> 
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK
> i700
> Series Scanner you'll get full speed at 300 dpi even with all image 
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/going-crazy-...-%28-callback-again-%29-tp2815007p2820197.html
Sent from the qooxdoo mailing list archive at Nabble.com.


------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to