Сохранить / использовать текст (html) ответа на запрос. опубликовать в глобальной переменной в nodejs

#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