【问题标题】:Getting response text from node fetch [duplicate]从节点获取响应文本[重复]
【发布时间】:2021-08-24 04:24:15
【问题描述】:

我对节点获取相当陌生,我正在执行一个简单的获取请求来获取我的邮递员集合列表。我能够获取响应文本并将其控制台记录到函数中 但是当我将 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);

【问题讨论】:

  • 您不会在结果变量中等待 getCollections()。应该是: const reuslt = await getCollections();这应该可以解决您的问题。

标签: javascript fetch node-fetch


【解决方案1】:

在异步函数有机会返回已解决的承诺之前,您似乎正在记录 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    相关资源
    最近更新 更多