我可以访问函数中的全局变量,但是当我按下它时不会设置为全局变量。我做错了什么?
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
答案 0 :(得分:1)
readdir
是异步的,这意味着在执行回调之前可能会发生最终的控制台日志。您可以使用fs.readdirSync
代替