lm121342074
lm121342074
采纳率7.1%
2017-05-31 03:57 阅读 1.7k

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,怎样解决,想大佬请教!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-05-31 03:56

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

    点赞 3 评论 复制链接分享
  • weisheixiaoxin Laherz 2017-05-31 04:36

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

    点赞 评论 复制链接分享
  • lm121342074 lm121342074 2017-05-31 06:48

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

    点赞 评论 复制链接分享
  • u014074697 张大教主 2017-05-31 07:25

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

    点赞 评论 复制链接分享
  • qq_43384381 尔卿 2020-05-12 19:50
    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;
            }
          });
        },
    

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

    点赞 评论 复制链接分享

相关推荐