js中的function函数的传值问题

function fn_description(){
var description=null;
Ext.Ajax.request({
url: top.SSF_CONTEXTPATH + "/appweb/knowledge/DocCategaryAction.do",
params:{
method:'getDocCategary',
categaryId: field_categaryId.getValue()
},
success : function(req,opt){
var result = Ext.util.JSON.decode(req.responseText);
description=result.root.categaryDescription;
// alert(description);
}

});
return description;
}

以上代码中 最后获取到的description为什么还是null,怎样解决,想大佬请教!

因为success是异步执行的,所以return description;在success调用以前就返回了。
需要同步调用ajax
http://www.cnblogs.com/fengmiaosen/archive/2010/06/23/1763484.html

ajax改为同步调用,或者将后面逻辑写入回调块

改为同步调用后,return的语句的位置变吗

直接将return description;放到success函数中即可

getOrderType() {
      var data=[];
      request.post("cityBusiness/getOrderTypeList", {}).then((success)=> {
        debugger
        if (success.data.code === 0) {
          console.log(success.data.data);
          data=success.data.data;
        }
      });
      return data;
    },
         getOrderStatus() {
      request.post("cityBusiness/queryOrderStatusList", {}).then(result => {
        if (result.data.code === 0) {
          return result.data.data;
        }
      });
    },

我也是遇到这个问题了,头痛。这两个函数,获取到的值,在其他地方调用的时候,都没法传递出去,