微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Vanilla Javascript 检索多个 JSON 文件

如何解决如何使用 Vanilla Javascript 检索多个 JSON 文件

嗨,我在试图弄清楚如何在我的本地文件夹中调用多个 json 文件时遇到问题,我只能读取一个...需要帮助

class App {

    getIdInHash = (slug) => {
        let hash = location.hash,hashInArray = hash.split(`#!/${slug}/`),id = hashInArray[1];

        return id;
    }

    afficherDetail = (id) => {
        console.log('AfficherDetail');

        fetch('data.json')
            .then(function(response) {
                return response.json();
            })
            .then(function(data) {

                console.log(data);
                //On va chercher la div vide
                let elResult = document.querySelector('[data-js-result]');
                //On injecte le resultat
                elResult.innerHTML = `<p>Les cépages de la région ${data[id].region ? data[id].region : '' } sont : ${data[id].cepage}.</p>`;;
            
            })
            .catch(function(error) {
                console.log(`Il y a eu un problème avec l'opération fetch: ${error.message}`);
            });
    };
}

export const { getIdInHash,afficherDetail } = new App();

解决方法

我认为读取多个文件的最佳方法是拥有一个包含文件名的数组

var promisList = [];
var resultList = [];
var fileNameList = ['data1.json','data2.json','data3.json'];

fileNameList.forEach((fileName,index) => {
  promiseList.push(
    fetch(fileName).then(response => {
      resultList[index] = response.json();
    })
  );
});

// since all is async,we need to wait all promises to be finished
Promise
  .all(promiseList)
  .then(() => {
    // all promises finished
    // all results saved in resultList
    // put your logic here
  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?