我正在尝试在for循环之后返回一个值,但是我的return语句正在for循环完成之前执行

时间:2019-06-30 01:39:31

标签: javascript node.js asynchronous es6-promise

我试图返回一个值,该值应该是一个数组(从按钮标签内部读取文本),但是我的return语句未定义,我相信是因为我的return语句在for循环完成之前执行并且该值是分配。

我一直在寻找异步,等待,诺言之类的东西,但是我似乎无法将其与我想要实现的目标联系在一起。

我认为这与标记的重复项不同,因为我没有使用Ajax。

function getComponentsButtons(component){

  let currentButton = []
  let buttonArray = []
  let path = `../src/components/${component}/index.js`;

  /* Reading each index.js */
  fs.readFile(path, "utf8", function(err, data) {
    /* Walking along and seeing if there is a <button tag */

    for(let j = 0; j < data.length; j++){

      if(data.slice(j, j + 7) === '<button'){
        /* if there is a <button tag, walk til you see the closing tag >, get the value until you reach the < tag */

        while(data[j] !== '>'){
          j++;
        }

        while(data[j] !== '<'){
          j++;
          currentButton.push(data[j]);
        }

        currentButton.pop();
        currentButton = currentButton.join("");
        buttonArray.push(currentButton);
        currentButton = []

      }

    }

  }); // end of read file

  return buttonArray;

}

我希望能够返回已填充的buttonArray。

0 个答案:

没有答案