这是一个关于Javascript范围和功能的问题所以我很抱歉,因为我是JS的新手!!
我有一段javascript,连接创建了一个HTTPClient连接到Vertx的REST服务 - 这一切都运行良好没有问题。
我的问题是我需要访问此次调用之外的“client.request”返回的“status”和“data”
// 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();
所以在这里的代码中,我想使用/ access“status”和“data”。在另一种语言中,我只是将它们作为调用堆栈中的对象返回。
答案 0 :(得分:1)
将它们存储在函数外部的变量中,您可以访问它。如果您需要知道信息何时可用,请定义回调函数或查看javascript自定义事件。
答案 1 :(得分:1)
你也可以在javascript中做同样的事情。请参阅此document。
您可以创建一个类:
function httpResponse(status,data) {
this.status=status;
this.data=data;
}
设置如下值:
var myStatus = new httpResponse(response.status, response.data);
添加return语句:
return myStatus;
在您的通话代码中,您可以按以下方式访问此数据:
var status = myStatus.status;
答案 2 :(得分:-1)
在函数外定义一个全局变量。
var myVariable1_status;
var myVariable1_data;
然后将状态和数据值分配给函数内的变量。
function(){
myVariable1_status = status;
myVariable1_data = data;
}