javascript - 为什么 fetch 返回 promise 未决?

标签 javascript promise fetch-api

我正在使用 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/

相关文章:

Javascript:从数组中删除项目

javascript - 单击离开页面时加载图像

javascript - JQM 向可折叠标题添加按钮

ios - 自己的 Promisekit promise 没有正确响应

javascript - 使用 fetch 和 ES6 promise 处理自定义错误的最简洁方法

javascript - 在 Node js 后端使用 FormData 和 XmlHttpRequest 上传文件并使用 Formidable 显示空文件、字段

javascript - 无法复制 Javascript/Jquery 插件

javascript - 当列表长度未知时依次调用http.get

JavaScript Fetch API - 将输出保存为对象

Javascript 获取事件处理程序不起作用