Javascript 如何将txt文件返回的数据保存到函数外部的数组?

Javascript 如何将txt文件返回的数据保存到函数外部的数组?,javascript,Javascript,这是我第一次使用javascript,我正在尝试将从.txt文件中提取的数据保存在一个数组中,该数组是我在代码开头和外部声明的。(这是电子结构) 我试图提取数据并保存到数组中 const { remote } = require('electron') const app = remote.app const $ = require('jquery') const fs = require('fs') const dialog = remote.dialog const win = remot

这是我第一次使用javascript,我正在尝试将从.txt文件中提取的数据保存在一个数组中,该数组是我在代码开头和外部声明的。(这是电子结构)

我试图提取数据并保存到数组中

const { remote } = require('electron')
const app = remote.app
const $ = require('jquery')
const fs = require('fs')
const dialog = remote.dialog

const win = remote.getCurrentWindow()

let dataMeetingsFromTxt

{...}

function readMeetingsToSaveIntoArray() {
  dataMeetingsFromTxt = []
  fs.readFile('./dataMeetings.txt', 'utf-8', (err, data) => {
    if (err) throw err;
    dataMeetingsFromTxt = data.toString().split("\n");
  })
}

{...}

$('.oneBTN').on('click', () => {
  readMeetingsToSaveIntoArray()
  console.log(dataMeetingsFromTxt.length) //The output is always 'undefined'
})

输出总是“未定义”。

这是因为fs.readFile是异步的。第三个参数是回调,这是应该执行console.log的地方。否则,单击处理程序上的console.log将在readFile的回调之前执行

const { remote } = require('electron')
const app = remote.app
const $ = require('jquery')
const fs = require('fs')
const dialog = remote.dialog

const win = remote.getCurrentWindow()

let dataMeetingsFromTxt

{...}

function readMeetingsToSaveIntoArray() {
  dataMeetingsFromTxt = []
  fs.readFile('./dataMeetings.txt', 'utf-8', (err, data) => {
    if (err) throw err;
    dataMeetingsFromTxt = data.toString().split("\n");
    console.log(dataMeetingsFromTxt.length);
  })
}

{...}

$('.oneBTN').on('click', () => {
  readMeetingsToSaveIntoArray()
})

能否在
dataMeetingsFromTxt=data.toString().split(“\n”)行之后记录
dataMeetingsFromTxt
?如果单击两次按钮,是否仍未定义?这里可能缺少一个承诺。请注意,这里不需要data.toString(),因为您已经指定了“utf8”