我正在使用 fetch 来获取数据,但它始终返回待处理的承诺。我看过很多关于这个问题的帖子,并尝试了所有的可能性,但没有解决我的问题。我想知道为什么 fetch 返回待定状态的承诺,简而言之,fetch 返回待定状态的可能情况是什么?
我的一段代码供参考:
fetch(res.url).then(function(u){
return u.json();
})
.then(function(j) {
console.log(j);
});
正如一位楼上评论所说,fetch()
是一个召唤的承诺.then()
当请求被网络处理时。此回调中的参数是另一个调用的 Promise$.then()
当我们收到服务器的响应时。
也许你应该尝试这样的事情:
fetch(res.url)
.then(function(serverPromise){
serverPromise.json()
.then(function(j) {
console.log(j);
})
.catch(function(e){
console.log(e);
});
})
.catch(function(e){
console.log(e);
});
或者用 lambda 表示法:
fetch(res.url)
.then((serverPromise) =>
serverPromise.json()
.then((j) => console.log(j))
.catch((e) => console.log(e))
})
.catch((e) => console.log(e));
这是我第一次在 Stack Overflow 上发帖,所以如果我有任何错误或者您有任何建议,请告诉我,谢谢!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)