首页 > 解决方案 > javascript 通过 fetch 获取 Json 数据

问题描述

我在js中很菜鸟。我想要做的是向我的服务器发送一个get请求并接收一个json。我可以通过 fetch 来做到这一点,但是它返回一个不适合我的承诺,因为我需要将接收到的 json 传递给另一个函数。有什么办法可以摆脱承诺?如果没有任何替代解决方案?我搜索了很多,但没有找到合适的解决方案。

这是我的功能:

function fetchAndConvertData(path) {
    return fetch(path).then(response =>
        response.json().then(data => ({
                data: data,
                status: response.status
            })
        ).then(async res => {
            return res.data
        }));
}

标签: javascriptjson

解决方案


你可以简单地写:

async function fetchAndConvertData(path) {
    const response = await fetch(path);
    const data = await response.json();

    return { // This is a Promise because async functions always return a Promise
        data,
        status: response.status
    }
}

(async () => {
    const result = await fetchAndConvertData("some/path/here");
    console.log(result)
})();

推荐阅读