jsクローズド関数結果値取得

1312 ワード

jsクローズド関数は、このように書いてもリターン値が得られないのです.理由はAJAXは非同期です.requestを操作して取得した結果はsuccessに書く必要があります.
    var welcomeUrl__ = (function(){
        Ext.Ajax.request({
            url:'develop/developMgr!readDevelopConfig.jhtml?nodeId='+Ext.parseQuery().nodeId,
            method:"get",
            success:function(response,action){
              var ret = Ext.util.JSON.decode(response.responseText);
              var r = ret.welcomeUrl;
              return r;
            }
        });

    })();
このように書くと、jsのクローズド関数が返された結果が得られます.
    var welcomeUrl__ = (function(){
       var r =""; 
       return r;
    })();