js 调用自己一个函数 返回值问题

调用一个函数 得到的返回值一直是初始化的null 只有函数加了断点一步一步走结果才不是null 求大神指点

ajax是异步的请求,success里的函数会在请求成功后才会执行,也就是flag只会在请求完成后才会将data.total赋值给flag。而return flag是在确认要发起请求后就执行了。所以除非请求完成,否则就是null

不知道你的HdUtils是什么封装的,jqurey的加async: false参数,纯ajax就加asyn: false,这样试试

var searchReportByld = function(shipreportdocId){
    var flag = null;
    var builderShipReport = new HdEzuiQueryParamsBuilder();
    if(shipreportdocld != ""){
        builderShipReport.setAndClause("shipreportdocId", shipreportdocId, "=", "and");
    }
    HdUtils.ajax.post({
        url: "../webresources/login/work/ShipReport/find",
        data: buildershipReport.build(),
        success: function(data){
            flag=data.total;
        },
        async: false
    });
    return flag;
};
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-10
你在flag = data.total;语句上面加一句console.log(data),看下有没有数据来着
相似回答