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

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 (作者)

多谢多谢

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