如何解决反复获取未完成的承诺
我需要从REST服务器请求数据以填充UI(前端)。为此,我需要从我的服务器和其他服务器请求一些数据。这样的请求之一就是获得州(省)列表。我使用fetch()和.json()来做到这一点。
我看到有一些关于SO的问题,下面将解决(here,here等),但是尝试他们的解决方案/建议并不能解决我的问题。
例如
fetch("http://localhost:3443/app/location/provinces").then(e => e.json()).then(console.log);
自然地,fetch()
作为网络操作将返回一个诺言,或者我可以将其与await
和async
一起使用。同样,.json()
也是一个承诺。由于resolve(data)调用then()
进行下一个then(),并且.catch(error)
处理reject(error),因此上述请求应该有意义。
问题:
但是,每次致电:
fetch("http://localhost:3443/app/location/provinces")
.then(e => e.json())
.then(console.log)
.catch(console.warn);
我得到一个Promise {<pending>}
。既然是这种情况,我尝试使用async/await
impl进行同样的操作,并收到相同的“错误”:
(async () => {
let l = await fetch("http://localhost:3443/app/location/provinces");
console.log(l);
})();
我在做什么错/想念?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。