所以我的代码在这里返回Promise,并且由于我使用的是then
语法,所以我不知道为什么会这样:-??
fetch('someurltoAJsonFile.json')
.then(function(response) {
console.log(response.json());});
答案 0 :(得分:7)
response.json()也返回一个Promise,而是尝试
sampleWithRename.txt
您可以查看有关它的更多详细信息here
编辑:
似乎返回的响应不在有效的json中,因此为了完整起见,这里是文本代码
sample.txt
答案 1 :(得分:2)
作为参数then
给出的函数将异步执行(将来在服务器返回响应时),但是then
本身会通过其{{3 }}
如果您想让代码看起来不太嵌套(更多作为同步代码),则可以使用await,但必须使用异步功能使整个代码不透明
async function load()
{
let response = await fetch('someurltoAJsonFile.json');
let data = await response.json();
console.log(data);
}
答案 2 :(得分:0)
争论这是否可以作为答案,但是今天我遇到了类似的情况,即使我的问题最终与环境有关,也导致我提出了这个问题。
如果您看到承诺未决并且您的代码正确,并且花了太多时间试图弄清为什么console.log无法显示,请再次检查chrome的dev工具中是否已打开“ Info”。我只打开了警告,所以看不到console.log。
答案 3 :(得分:0)
这段代码可以正常工作,并显示出获取和获得承诺的好方法,而没有待解决的问题。
如果您遇到核心问题,请在服务器中运行此代码,然后在谷歌浏览器中下载此扩展程序“允许CORS:Access-Control-Allow-Origin”
async function invoices()
{
let response = await fetch('https://blockchain.info/latestblock?utm_medium=referral&utm_campaign=ZEEF&utm_source=https%3A%2F%2Fjson-datasets.zeef.com%2Fjdorfman');
let data = await response.json();
console.log(data);
return data;
}
invoices().then(data => {
console.log(data);
});