#javascript #node.js #scope #request #http-post
#javascript #node.js #область видимости #запрос #http-post
Вопрос:
Я хочу сохранить содержимое body в моей глобальной переменной returnData
, чтобы я мог вернуть это во внешнюю функцию. Но это работает только тогда, когда я console.log
делаю это внутри обратного вызова. Данные не сохраняются в глобальную переменную.
var returnData; // This is where I want to store the output of request.post
function getDataFromPostRequest() {
request.post(
{
url: "http://example.com",
formData: {x: "y"},
},
function optionalCallback(err, httpResponse, body) {
console.log(body) // this is working
returnData = body;
}
);
}
console.log("returnData ", returnData); // This is undefined
Ответ №1:
возможно, вы сможете это сделать:
var returnData; // This is where I want to store the output of request.post
function getDataFromPostRequest() {
request.post(
{
url: "http://example.com",
formData: {x: "y"},
},
function optionalCallback(err, httpResponse, body) {
console.log(body) // this is working
returnData = body;
console.log("returnData ", returnData);
}
)
}
Комментарии:
1. Спасибо за ответ, но вопрос в том, почему это
undefined
во внешней области видимости и как мы можем использоватьbody
за пределамиrequest.post