我有两个fetch
脚本,它们在或上都很好用,尽管我不知道如何合并它们。
第一个例子让我知道了response.status
是什么,尽管它知道服务器的HTTP响应,但没有响应正文(是的,异步):
fetch(url).then(function(r)
{
if (r.status != 200) {alert('Error: unable to load preview, HTTP response '+r.status+'.');}
else
{
console.log(r.text());//Promise { <state>: "pending" }, no good.
}
}).catch(function(err) {alert('Error: '+err);});
第二个脚本允许我访问response.text()
,尽管我没有访问response.status
的权限:
fetch(url).then(r => r.text()).then(function(r)
{
console.log(r);//response text.
});
如何正确合并脚本,以便在收到请求 * 后 * 能够访问response.status
和response.text()
?
4条答案
按热度按时间ckocjqey1#
你可以这样做;需要先解决承诺,然后才能访问值
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
62lalag42#
您可以使用
Promise.all
,它允许您在fetch
返回一个承诺的同时处理多个承诺。r6l8ljro3#
虽然@shubhan的代码可以正常工作,但一个更干净的方法可能是内置的承诺链,以避免回调地狱,这是承诺努力解决的问题:
ny6fqffe4#
谢谢