从返回 Promise 的 fetch 中分配变量

Jua*_*rra 3 javascript json fetch async-await

我有两个文件是数组,我想从获取中加载它们。我有一个获取文件的异步函数:

async function getData(file) {
    const data = await fetch(`./assets/resources/${file}.json`);
    return await data.json()
}
Run Code Online (Sandbox Code Playgroud)

然后这里是我将变量分配给这次获取的返回值的地方:

let notes = getData("notes").then(res => res)
let pentagrama = getData("pentagrama").then(res => res)
Run Code Online (Sandbox Code Playgroud)

但我得到的只是: 来自 google chrome 控制台

我怎样才能真正获得价值?

Chr*_*tos 5

的结果getData始终是Promise解析为您的数据的 a 。要访问这些值,您可以使用async/await

(async () => {

    let notes = await getData("notes");
    let pentagrama = await getData("pentagrama");

    // use them here

})();
Run Code Online (Sandbox Code Playgroud)

或者,您可以Promise.all等待两个承诺都解决,然后访问收到的数据:

let notesP = getData("notes");
let pentagramaP = getData("pentagrama");

Promise.all([noteP, pentagramaP]).then(res => {

    let notes = res[0];
    let pentagrama = res[1];

    // use them here

});
Run Code Online (Sandbox Code Playgroud)