嗨,大家好,我有函数,它正在返回一个javascript类,但是在运行时返回的值是不确定的。当我将返回值设置为某个全局变量时,它在Chrome开发人员控制台上给了我正确的结果。为什么会这样呢?
var globalData;
$(document).ready(function(){
var request = postRequest("contact", dt, elem);
globalData = request;
console.log(request.status); //this gaves me undefined
});
function returnObj(status, message, projects) {
this.status = status;
this.message = message;
this.projects = projects;
}
function postRequest(method, vars, elem) {
var result = new returnObj();
$.post('api.aspx',
{
method: "test"
},
function (data, status) {
var resultObject = $.parseJSON(data);
result.status = resultObject.status;
result.message = resultObject.message;
result.projects = resultObject.projects;
});
return result;
}
您的post
ajax请求接受一个callback
异步函数作为第三个参数。
return result;
语句将在callback
结束之前被调用,这就是您收到的原因undefined
。
我建议您创建一个callback
函数。
function postRequest(method, vars, elem,callback) {
^^^^^^^^
var result = new returnObj();
$.post('api.aspx',
{
method: "test"
},
function (data, status) {
var resultObject = $.parseJSON(data);
result.status = resultObject.status;
result.message = resultObject.message;
result.projects = resultObject.projects;
callback(result);
});
}
如何调用函数:
postRequest(method, vars, elem, function(result) {
console.log(result);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句