我正在使用 fetch 来获取数据,但它一直将 promise 返回为待处理。我看过很多关于这个问题的帖子,并尝试了所有的可能性,但没有解决我的问题。我想知道为什么 fetch 简要地返回 promise 作为待处理状态 fetch 返回待处理状态的可能情况是什么?
我的一段代码供引用:
fetch(res.url).then(function(u){
return u.json();
})
.then(function(j) {
console.log(j);
});
最佳答案
一个 fetch()
是网络操作。为了避免在我们得到网络回复之前挂起,我们将其推迟到后台,并给自己一个最终会完成的 promise 。
所以fetch(url).then((data) => data.json())
意味着我们获取 url,等待数据进入,获取数据的 json 表示并等待(data.json() 也是一个 promise )
在我们得到结果之前, promise 在 pending
中。状态。服务器还没有回复我们的请求。
--
阅读评论,添加一个错误处理程序可能会很好,因为这就是为什么当前 fetch 应该没有做任何事情的原因:fetch().then((data) => data.json()).catch((error) => console.log(error))
关于javascript - 为什么 fetch 返回 promise 未决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59394620/