Javascript 为什么这个承诺没有得到解决?
我创建了一个读取外部JSON文件并返回承诺的函数。它工作正常,但突然停止工作。这是发生错误的代码Javascript 为什么这个承诺没有得到解决?,javascript,es6-promise,Javascript,Es6 Promise,我创建了一个读取外部JSON文件并返回承诺的函数。它工作正常,但突然停止工作。这是发生错误的代码 export let readJSON = async (file) => { const request = async () => { const response = await $.get(`${jsonPath}/${file}`); return response; } return await request();
export let readJSON = async (file) => {
const request = async () => {
const response = await $.get(`${jsonPath}/${file}`);
return response;
}
return await request();
}
下面是函数调用
readJSON("admin-form.json").then( i => {
let opts = $.extend({}, i, options )
formBuilder(opts);
} ).catch(e => console.error(e))
这是我在控制台中遇到的错误
我甚至把代码改成了
export let readJSON = async (file) => $.get(`${jsonPath}/${file}`)
readJSON("admin-form.json").then( i => {
console.log(i)
} ).catch(e => console.error(e))
但错误依然存在
它工作正常,然后突然停止工作我试图读取的json文件中有一个解析错误admin form.jsonp.S。AJAX状态为200,因此它不应该抛出错误。你确定没有其他错误吗P.P.s.$。得到已经回报的承诺。为什么你觉得有必要用这些额外的代码来包装它?不清楚你想用它实现什么
$.get(
${jsonPath}/${file})。然后(//…etc)
也可以。我想你可以把它缩短为导出const readJson=async(file)=>$.get(`${jsonPath}/${file})代码>。无需等待
两次(!),只需直接返回承诺。您是否检查了响应是否发生了更改,可能是在let opts=$之后发生的错误。扩展({},i,options)formBuilder(opts)代码>我相信HTTP请求成功,但解析数据的尝试没有成功,您有权访问数据吗?