返回未定义的类javascript

时间:2014-02-24 22:48:26

标签: javascript ajax class return-value

请帮助我,我有一个问题。这是我的代码:

function Cnx() {
    var url = 'http://192.168.0.13/activity?name=flower';
    var solicitud = new XMLHttpRequest();
    this.res;
    solicitud.addEventListener('load', cargar, false);

    solicitud.open("GET", url, true);
    solicitud.send(null);

    function cargar(e) {
        this.setRes(e.target.responseText);
    }

    this.setRes = function(valor) {
        this.res = valor;
    }

    this.getRes = function() {
        alert(this.res);
    }

}

然后,我打电话给:

var cnx= New Cnx(); alert(cnx.getRes());

但是,这会返回undefined。如果我从一个按钮调用例如cnx.getRes(),它将返回正确的值。

注意:ajax调用正常。

为什么会这样?

非常感谢你。对不起,我的英语不好......

2 个答案:

答案 0 :(得分:1)

除了Ed的观察之外还有另一个问题:

在调用New Cnx();后,控制流不会等待XMLHttpRequest完成。因此,如果您在调用cnx.getRes()之前没有等待请​​求完成,则响应将永远不可用。

您可以做的最好的事情就是将其余的代码放在cargar函数中,只要加载了响应,就会自动调用它。

答案 1 :(得分:0)

getRes()没有返回值,因此返回值未定义。