从节点获取获取响应文本

时间:2021-06-07 03:29:10

标签: javascript fetch node-fetch

我对节点获取相当陌生,我正在执行一个简单的获取请求以获取我的邮递员集合列表。我能够获取响应文本并将其记录在函数中 但是当我将 responseText 返回到一个变量并记录它时,我得到一个空的结果,有人可以建议为什么吗?

const fetch = require("node-fetch");
async function getCollections() {
  var myHeaders = new fetch.Headers();
  myHeaders.append(
    "X-Api-Key",
    "<API-KEY>"
  );
  var requestOptions = {
    method: "GET",
    headers: myHeaders,
  };
  url = "https://api.getpostman.com/collections";
  const requestResponse = await fetch(url, requestOptions);
  const response = await requestResponse.text();
  return response;
}

const result = getCollections();
console.log(result);

1 个答案:

答案 0 :(得分:0)

看起来您在异步函数有机会返回已解决的承诺之前记录 result。我可以想到两种方法来解决这个问题:

const fetch = require("node-fetch");

async function getCollections() {
  var myHeaders = new fetch.Headers();
  myHeaders.append(
    "X-Api-Key",
    "<API-KEY>"
  );
  var requestOptions = {
    method: "GET",
    headers: myHeaders,
  };
  url = "https://api.getpostman.com/collections";
  const requestResponse = await fetch(url, requestOptions);
  const response = await requestResponse.text();
  return response;
}

getCollections().then(console.log);

或者在异步函数内部移动控制台日志。

const fetch = require("node-fetch");
async function getCollections() {
  var myHeaders = new fetch.Headers();
  myHeaders.append(
    "X-Api-Key",
    "<API-KEY>"
  );
  var requestOptions = {
    method: "GET",
    headers: myHeaders,
  };
  url = "https://api.getpostman.com/collections";
  const requestResponse = await fetch(url, requestOptions);
  const response = await requestResponse.text();
  console.log(response)
  return response;
}

getCollections()
相关问题