I have some code that authenticates by posting an object using npm request.
After posting the JSON object, a JSON response is returned which contains an authn token I can use in future GET/POST request headers.
I have some async code that returns the correct authn token but I can only access it via the .then function code block.
I have read through the usual linked thread here: How do I return the response from an asynchronous call? but even though the return result is in the .then function I still get undefined when trying to do anything other than console.log().
const postData = {
  "auth": {
    "username": "username",
    "password":"password"
  }
};
var returnRequest = () => {
  var options = {
    method: 'POST',
    url: 'https://api.appnexus.com/auth',
    body: postData,
    json: true
  };
  return new Promise(async (resolve, reject) => {
    await requestAPI(options, function (error, response, body) {
      if (error) {
        reject(error);
      }
      resolve(body);
    });
  })
}
var returnedResult
returnRequest()
  .then((result) => {
     returnedResult = result.response.token
  })
  .catch((error) => {
    console.log(error);
  })
  console.log(returnedResult)
I would expect to see the returnedResult store the token as I understand it, the .then promise only runs one the request has happened?
A developer said I have to build all subsequent code inside the .then block but that sounds crazy, that I have to have my whole program inside this returnRequest function rather than be able to pass the returned token back outside to a global variable?
Is that the correct way to do it, and am I supposed to just build all subsequent requests using the result.response.token inside the
returnRequest()
  .then((result) => {
     returnedResult = result.response.token
  }) 
function?
 
     
     
     
    