愚蠢的错误!是的,我知道,但我需要帮助(Javascript)

问题描述 投票:0回答:1

我开始学习 javascript,我决定尝试用模块做一个东西,我想从那时起循环并使用 for 循环执行函数!我知道这不是最好的方法...但我学得好吗?

document.addEventListener("DOMContentLoaded", function() {
  //Pegamo o butão
  const RunButton = document.getElementById("Run");

  RunButton.addEventListener("click", () => {
      // Fetch the JSON data
      

      fetch('Codes.json')
          .then(response => {
              if (!response.ok) {
                  throw new Error('Network response was not ok');
              }
              return response.json();
          })
          .then(data => {
            //Pegamos... o obvio né murilo!
              const levelData = data[level];
              //Blocks :)
              const blocks = levelData.blocks;
          
              // Loop pelo cade bloco e seu nome
              for (let i = 0; i < levelData.BlocksIn; i++) {
                //Block é o bloco atual!
        
                  const blockWord = blocks[i];
                  var Paramater = SectionDiv.querySelector("#Block_" + i);
                  
                  // Pegamos o nome do bloco... e agora é so usar!
                  import('./blocks.js')
                      .then(module => {
                        //Pegamos do modulo
                          console.log("sex")
                          const FunctionOrClass = module.default[blockWord];
                        //Cria uma instacia ( pois é uma classe ) 
                        const Class =  new FunctionOrClass()
                          //E executa uma função :) 
                          Class[Paramater.value]()
                          alert(Paramater.value )
                        
                      })
                      .catch(error => {
                          console.error('Error importing module:', error);
                      });
              }
          })
          .catch(error => {
              console.error('Error fetching JSON:', error);
          });
  });
});

我很努力,但还是走到了这一步,但最后没关系,有一件事我不知道为什么,我再努力也没关系

javascript web module
1个回答
0
投票

这是脚本的修订版本,并进行了一些改进:

document.addEventListener("DOMContentLoaded", function() {
  const runButton = document.getElementById("Run");

  runButton.addEventListener("click", () => {
    fetch('Codes.json')
      .then(response => {
        if (!response.ok) {
          throw new Error('Network response was not ok');
        }
        return response.json();
      })
      .then(data => {
        const levelData = data[level]; // Ensure `level` is defined somewhere in your script
        const blocks = levelData.blocks;

        // It's better to import the module once, outside the loop
        import('./blocks.js')
          .then(module => {
            for (let i = 0; i < levelData.BlocksIn; i++) {
              const blockWord = blocks[i];
              const parameter = document.querySelector("#Block_" + i);
              const FunctionOrClass = module.default[blockWord];

              if (FunctionOrClass) {
                const instance = new FunctionOrClass();
                if (instance[parameter.value] instanceof Function) {
                  instance[parameter.value](); // Execute the function
                  alert(parameter.value);
                } else {
                  console.error('Method not found:', parameter.value);
                }
              } else {
                console.error('Block not found:', blockWord);
              }
            }
          })
          .catch(error => {
            console.error('Error importing module:', error);
          });
      })
      .catch(error => {
        console.error('Error fetching JSON:', error);
      });
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.