等待正常功能完成,然后再继续吗?

时间:2020-04-10 12:31:19

标签: javascript

我希望程序等到getFiles返回数组,并且应该在打印名为totalProjectFiles的数组之前将其连接起来。

let totalProjectFiles = []
let projectDir = './defaults/'

    function getFiles (dir, files_){
        files_ = files_ || [];
        var files = fs.readdirSync(dir);
        for (var i in files){
            var name = dir + '/' + files[i];
            if (fs.statSync(name).isDirectory()){
                getFiles(name, files_);
            } else {
                files_.push(name);
            }
        }
        return(files_)
    }




function ff (){
  const a = getFiles(projectDir)
  totalProjectFiles.concat(a)

  console.log(totalProjectFiles)
}

ff()

4 个答案:

答案 0 :(得分:0)

快到了。我建议检查文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

您只需要一个await

async function ff (){
  const a = await getFiles(projectDir)
  totalProjectFiles.concat(a)

  console.log(totalProjectFiles)
}

答案 1 :(得分:0)

let totalProjectFiles = []

async function ff (){
  const a = await getFiles(projectDir)
  totalProjectFiles.concat(a)

  console.log(totalProjectFiles)
}

ff()

答案 2 :(得分:0)

请在内部添加等待功能

let totalProjectFiles = []

async function ff (){
  const a = await  getFiles(projectDir)
  totalProjectFiles.concat(a)

  console.log(totalProjectFiles)
}

ff()

答案 3 :(得分:0)

Concat返回一个新数组,而不对其进行突变,将其分配回

function ff (){
  const a = getFiles(projectDir)
  totalProjectFiles = totalProjectFiles.concat(a)

  console.log(totalProjectFiles)
}