我正在使用 fetch 来获取数据,但它一直返回未决的承诺。我看过很多关于这个问题的帖子,尝试了所有的可能性,但没有解决我的问题。我想知道为什么 fetch 返回 promise 为 pending 简而言之,fetch 返回 pending 状态的可能情况是什么?
我的一段代码供参考:
fetch(res.url).then(function(u){
return u.json();
})
.then(function(j) {
console.log(j);
});
原文由 Max 发布,翻译遵循 CC BY-SA 4.0 许可协议
Promises 是一种允许调用者在等待函数结果的同时做其他工作的方法。
请参阅 MDN 上的 承诺 和 使用承诺:
fetch(url)
返回一个Promise
对象。它允许使用可以响应结果值(对请求的响应)的.then(…)
附加“监听器”。.then(…)
再次返回Promise
将给出结果的对象。async
和await
您可以使用 JS 语法糖来使用 Promises:
async function
返回一个承诺。await
关键字将函数的其余部分包装在.then(…)
中。这里等效于没有await
和async
:再次参见 MDN 上有关 Promises 的文章。