我在Chrome Canary版本60.0.3102.0中试用了ES2015模块。我的script.js文件如下所示:
jsonObject
我的fetchJSON.js文件如下所示:
import {fetchJSON} from './functions/fetchJSON.js';
const configFile = 'config.json';
const init = () => {
fetchJSON(configFile)
.then((data) => { // code fails here at ln.7
console.log(data);
})
.catch(error => console.log(error));
};
init();
我收到错误:
export function fetchJSON(url) {
const fetchJSON = fetch(url)
.then(response => response.json())
.then(data => {
console.log(data); // data exists and is reported in the console
return data;
});
}
答案 0 :(得分:3)
你的fetchJSON函数没有返回任何内容。因此,当您尝试在fetchJSON的结果上链接.then时,您将获得未捕获的TypeError - 未定义。
解决方案:在fetchJSON函数中返回Promise链:
export function fetchJSON(url) {
return fetch(url)
.then(response => response.json())
.then(data => {
return data;
});
}