0

这确实是一个关于 Javascript 范围和功能的问题,所以我很抱歉,因为我是 JS 的新手!

我有一段 javascript,它连接创建一个 HTTPClient 连接到 Vertx 的 REST 服务 - 这一切都很好,没有问题。

我的问题是我需要访问此调用之外的“client.request”返回的“状态”和“数据”

// Create the HTTP Client
var client = vertx.createHttpClient().host(host).port(ssl_port).ssl(true);


var request = client.request("POST", "/api/en/v1.0/authentication/token/new" + "?login_id=" + login_id + "&api_key=" + api_key, function(resp) {

    //console.log("Got a response: " + resp.statusCode());
    resp.bodyHandler(function(body) {
        // Parse the JSON string into a new object.
        var response = JSON.parse(body);
        console.log("status : " + response.status);
        console.log("data : " + response.data);
    })
});


request.end();

所以在这里的代码中我想使用/访问“状态”和“数据”。在另一种语言中,我只是将它们作为调用堆栈中的对象返回。

4

3 回答 3

1

将它们存储在 of 函数之外的变量中,您可以访问它。如果您需要知道信息何时可用,请定义回调函数或查看 javascript 自定义事件。

于 2013-10-29T16:35:09.477 回答
1

你也可以在 javascript 中做同样的事情。请参阅此文档

您可以创建一个类:

function httpResponse(status,data) {
this.status=status;
this.data=data;
}

设置如下值:

var myStatus = new httpResponse(response.status, response.data);

添加返回语句:

return myStatus;

在您的调用代码中,您可以通过以下方式访问此数据:

var status = myStatus.status;
于 2013-10-29T16:40:13.897 回答
-1

在函数外部定义一个全局变量。

var myVariable1_status;
var myVariable1_data;

然后将状态和数据值分配给函数内部的变量。

function(){
    myVariable1_status = status;
    myVariable1_data = data;
}
于 2013-10-29T16:36:28.287 回答