我在node.js中使用node-rest-client或请求库来对服务进行API调用。我希望能够使用let和scoping来捕获响应,但只能获得请求...
在下面的代码中,当我控制日志新请求时,它会记录请求数据,当我在函数内部并记录info.check.id时,它会记录正确的数据。
var request = require(' request');
var options = {
url: 'https://api.pingdom.com/api/2.1/checks/******',
headers: {
"App-Key": "******************"
}
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
// console.log(info);
console.log(info.check.id)
// console.log(response.info);
}
else {
// console.log(body);
}
}
let newrequest = request(options, callback).auth('********', '********');
console.log(newrequest);
答案 0 :(得分:0)
此时:
console.log(newrequest);
,
请求尚未响应,因为实际上尚未进行调用。由于节点的异步性质,请求仅在行console.log(newrequest);
之后进行。您将只能在回调中访问响应,事实上,回调的整个点是为了让您可以处理响应。