Javascript 为什么这个承诺没有得到解决?

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();

我创建了一个读取外部JSON文件并返回承诺的函数。它工作正常,但突然停止工作。这是发生错误的代码

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.json

p.S。AJAX状态为200,因此它不应该抛出错误。你确定没有其他错误吗P.P.s.$。得到已经回报的承诺。为什么你觉得有必要用这些额外的代码来包装它?不清楚你想用它实现什么
$.get(
${jsonPath}/${file}
)。然后(//…etc)
也可以。我想你可以把它缩短为
导出const readJson=async(file)=>$.get(`${jsonPath}/${file})。无需等待
两次(!),只需直接返回承诺。您是否检查了响应是否发生了更改,可能是在
let opts=$之后发生的错误。扩展({},i,options)formBuilder(opts)我相信HTTP请求成功,但解析数据的尝试没有成功,您有权访问数据吗?