javascript范围问题 - 节点fs

时间:2018-02-25 17:20:52

标签: javascript

我可以访问函数中的全局变量,但是当我按下它时不会设置为全局变量。我做错了什么?

const fs = require('fs')
const moviesDir = `./movies`

var moviesList = []

function getMoviesList() {
  fs.readdir(moviesDir, (error, movies) => {
    movies.forEach(movie => {
      console.log(movie)  // <--works
      moviesList.push(movie)
    })
console.log(moviesList) // <--works
  })
}
getMoviesList()

console.log(moviesList) // <-- does-not work

1 个答案:

答案 0 :(得分:1)

readdir是异步的,这意味着在执行回调之前可能会发生最终的控制台日志。您可以使用fs.readdirSync代替

来防止这种情况发生