Javascript 为什么可以';在fetch';开发人员控制台中的响应对象?

Javascript 为什么可以';在fetch';开发人员控制台中的响应对象?,javascript,fetch-api,Javascript,Fetch Api,我最近了解了JavaScript的FetchAPI,我想知道为什么我不能直接从Fetch返回的响应对象中看到json数据 例如,我有一个返回一些json的url fetch("https://myURL/json", { method: "GET", credentials: "include" } ) .then(function(response) { if(response.ok) { return response.json()

我最近了解了JavaScript的FetchAPI,我想知道为什么我不能直接从Fetch返回的响应对象中看到json数据

例如,我有一个返回一些json的url

fetch("https://myURL/json",
    {
        method: "GET",
        credentials: "include"
    }
)
.then(function(response) {
  if(response.ok) {
    return response.json();
  }
  throw new Error('Network response was not ok.');
}).then(function(myJson) { 
  console.log(myJson); 
})
如果我在第一个
中放置断点,然后在
中,我可以在Chrome/Firefox的开发者控制台中查看从fetch返回的响应对象。该对象将有一些数据,但无法直接查看json。我必须调用该对象的
.json()
方法并返回该方法才能实际查看json数据

为什么在调用
.json()
之前,我看不到响应对象中的json数据?当我们到达第一个
.then()
时,提取还没有完成吗

根据

fetch()请求的响应是一个Stream对象,这意味着当我们调用json()方法时,将返回一个承诺,因为流的读取将异步进行

根据

fetch()请求的响应是一个Stream对象,这意味着当我们调用json()方法时,将返回一个承诺,因为流的读取将异步进行


我不知道您在复制粘贴代码时是否出错,但您缺少URL字符串上的结束引号

除此之外,我尝试了这段代码,它完成了它应该做的事情:

fetch("https://jsonplaceholder.typicode.com/users", {
    method: "GET",
    credentials: "include"
})
.then(function(response) {
    if (response.ok) {
        return response.json();
    }
    throw new Error('Network response was not ok.');
}).then(function(myJson) {
    console.log(myJson);
});

我不知道您在复制粘贴代码时是否出错,但您缺少URL字符串上的结束引号

除此之外,我尝试了这段代码,它完成了它应该做的事情:

fetch("https://jsonplaceholder.typicode.com/users", {
    method: "GET",
    credentials: "include"
})
.then(function(response) {
    if (response.ok) {
        return response.json();
    }
    throw new Error('Network response was not ok.');
}).then(function(myJson) {
    console.log(myJson);
});