Javascript函数类对象返回未定义

精神病

嗨,大家好,我有函数,它正在返回一个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;

}
Mihai Alexandru-Ionut

您的postajax请求接受一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章