从readFile中设置全局数组

时间:2017-03-16 16:24:16

标签: javascript jquery arrays node.js

我可能在这里遗漏了一些简单的东西,但出于某种原因,当我从函数内部设置数组的值时,我不能再在该函数之外读取该数组。

    var threadArray = []; 

    function getThreads() {
      var fs = require('fs');        
      // read list of threads
      fs.readFile('./database/threadList.txt', function(err, data) { 
        var threadIds = data.toString().split("\n");    
        for(i in threadIds) { threadArray[i] = threadIds[i].split(","); } 
        console.log("This works: " + threadArray[0])
      }) 
      console.log("This does not work: " + threadArray[0] + " Returns [undefined]")
    }

我在这里缺少什么?我假设与我声明数组的方式有关?

1 个答案:

答案 0 :(得分:1)

这是一个时间问题。 # Environment Post Processor org.springframework.boot.env.EnvironmentPostProcessor=com.blabla.config.ReadDbPropertiesPostProcessor 是一个异步操作 - 在fs.readFile开始运行并且尚未填充fs.readFile后,第二个无法正常运行的console.log会立即处理。您可以使用fs.readFileSync代替

threadArray