保存私人数据;Await Fetch的意外响应



所以我试图从控制台记录42的以下代码中的.then((方法中取出一个名为data的变量:

fetch("http://localhost:8088/get/value")
.then(response => response.json())
.then(data => console.log(data));

有人告诉我不能这样做,我应该尝试等待/异步,所以我将代码重新调整为:

asyncCall();
async function asyncCall()
{
var a = await fetch("http://localhost:8088/get/value");
console.log(a);
}

它最终在控制台中记录了整个响应,但奇怪的是,当我认为值42是通过主体发送的时,它为主体是否使用注册了false。为什么在我记录它之前,值42似乎消失了-我该怎么做才能让它用async/await控制台记录原始值42?谢谢你将来的帮助。

您缺少在第一个版本中对response.json()的调用。这告诉fetch模块将响应主体解释为json,否则,它可能是一个缓冲区或其他什么。

asyncCall();
async function asyncCall()
{
let data = await fetch("http://localhost:8088/get/value").then(res => res.json());
console.log(data);
}

最新更新