在Firefox和Chrome中使用window.fetch()从本地JSON文件中获取数据,这很麻烦:
var url = "http://sandbox.ccchapel.com/Thy-Kingdom-Come/data/outreach-spree.json";
var request = new Request(url, {
method: 'get',
mode: 'no-cors'
});
fetch(request).then(function(response) {
console.log(response);
return response.json();
}).then(function(j) {
console.log(j);
});

无论出于何种原因,在完整的AJAX响应之前调用第一个.then()函数,导致promise对象(响应)正在
<state>: "pending"
这会导致不必要的输出,因为我没有得到我想要的数据。
我查看了多份文件,但我似乎无法找到我做错的任何事情。
有什么想法吗?
答案 0 :(得分:0)
发布的代码很好。用
替换网址var url =
"data:application/octet-stream;base64,eyJncmVldGluZyI6ICJoZWxsbyBmb2xrcyJ9Cgo=";
({“greeting”:“hello folks”})看到它在行动。
似乎缺少的是承诺链上的.catch
子句,用于报告.json
文件中的解析错误。
答案 1 :(得分:-1)
经过谷歌搜索后,我发现谷歌的这篇文章:https://developers.google.com/web/updates/2015/03/introduction-to-fetch#chaining-promises
看起来你必须构建一些额外的函数来等待状态得到解决。然后,这将正确地传递响应,正如您所期望的那样。