我试图理解承诺,所以我尝试了一个简单的get请求在twitch。我不明白的是为什么json()
返回一个承诺。为什么?响应中已经包含了数据,所以为什么它是一个承诺呢?
fetch('https://api.twitch.tv/kraken/games/top?limit=10&offset=0')
.then( resp => {
resp.json()
.then(function(data) {
console.log(data);
});
});
换句话说:第一个then
,我理解,它等待响应。然而,当进入then函数时,它意味着响应已被接收,因此数据应该立即可访问,而不需要另一个承诺。
From the docs:
fetch()请求的响应是一个Stream对象,这意味着当我们调用json()方法时,会返回一个Promise流的读取将异步进行。