获取 post 响应作为 html 但也有状态

Fetch post response as html but also with status

我有一个 API 的获取调用。我需要 status 和 HTML 响应。

fetch('api/post/email', {
  method: 'POST',
  body: JSON.stringify(data)
}).then((response) => {
  console.log(response.text());
  console.log(response.body);

  if (response.status == 200) {
    console.log(response.status);
  } else {
    console.log(response.status);
  }
});

我从上面得到这个结果:

Promise {<pending>}
ReadableStream {locked: true}
404

最后一个 status 没问题,但是...

使用 fetch 从 API 获取正文或 HTML 结果的最简单方法是什么?

fetch('api/post/email', {
  method: 'POST',
  body: JSON.stringify(data)
}).then((response) => {
  response.text().then(re => {
   console.log(re);
  });
  console.log(response.body);

  if (response.status == 200) {
    console.log(response.status);
  } else {
    console.log(response.status);
  }
});

Response.text() returns 一个承诺,所以你必须像处理它一样处理它。 (传入回调)之后你可以在回调中记录它。

我能想到的最简单的方法是使用async/await。

注意:response.text() returns 解析为文本的承诺。

fetch('api/post/email', {
  method: 'POST',
  body: JSON.stringify(data)
}).then(async (response) => {
  const text = await response.text();
  if (response.status == 200) {
    console.log(response.status);
  } else {
    console.log(response.status);
  }
  console.log(text);
});