netstone
netstone
  • 发布:2016-10-13 15:32
  • 更新:2016-10-13 16:36
  • 阅读:1535

js函数返回值问题请教

分类:MUI
function test(dmCode, dmNum) {  
    //检查模型是否需要参数时, 需要传递的参数  
    var parajson = {  
        DataModelCode: dmCode,  
        DataModelNum: dmNum  
    };  

    //从临时存储中取出服务器地址和用户名  
    var globleServer = plus.storage.getItem("globleServer");  
    var globleUser = plus.storage.getItem("globleUser");  

    var linkurl = globleServer + '/api/DataModel/linkModelInformation';  

    var ret;  

    mui.ajax(linkurl, {  
        data: parajson,  
        dataType: 'json', //服务器返回json格式数据  
        type: 'post', //HTTP请求类型  
        timeout: 10000, //超时时间设置为10秒;  
        beforeSend: function() { //发送之前,可以打一下看看提交的参数(如果是变量)  
            //console.log('beforesend!' + JSON.stringify(parajson))  
            plus.nativeUI.showWaiting(); //关闭转圈   
        },  
        success: function(data) {  
            //console.log(JSON.stringify(data)) //成功,则打一下返回的数据  
            //登陆成功与否可以根据返回的data里自己组装的code、success、err=0之类的判断  
            //在这里关闭login页面,open登陆之后的index页面  
            ret = data.data.UseParamFlag;  

            console.log(ret);  //执行到这里会先是 true/false,是正确的值  
        },  
        error: function(xhr, type, errorThrown) { //失败,打一下失败的类型,主要用于调试和用户体验  
            console.log('AJAX:|T:' + type + '|H:' + xhr.responseText);  
            if(type == 'timeout') {  
                mui.toast("请求超时:请检查网络")  
            } else {  
                mui.toast('请求失败:' + type + '\n err:' + errorThrown);  
            }  
        },  
        complete: function() {  
            //console.log('userLogin:关闭转圈')  
            plus.nativeUI.closeWaiting(); //关闭转圈      
        }  
    });  

    **console.log(ret); //执行到这里就是undefined,请问原因,应该如何处理**  
    return ret;  

};

定义函数如上图,确无法返回Ajax获取的值,请教应该如何处理,多谢!
success: function(data) {
//console.log(JSON.stringify(data)) //成功,则打一下返回的数据
//登陆成功与否可以根据返回的data里自己组装的code、success、err=0之类的判断
//在这里关闭login页面,open登陆之后的index页面
ret = data.data.UseParamFlag;

console.log(ret); //执行到这里会先是 true/false,是正确的值

    },  

console.log(ret); //执行到这里就是undefined,请问原因,应该如何处理

return ret;

2016-10-13 15:32 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

ajax默认是异步的,可以配置async:false修改为同步。
建议在success回调中获取数据后,再进行后续的处理,不是特别推荐使用同步请求。

netstone

netstone (作者)

多谢多谢

该问题目前已经被锁定, 无法添加新回复