为什么数据没有写入文件?

Why is the data not written to the file?

我有这段代码应该在文本文件中写入数据:

const test = [
  'test1',
  'test2'
]
fs.writeFile('file.txt', test, {flag: "a"}, err => {
  if (err) throw err
})

问题是代码运行没有错误,但文件中没有数据。如果我只是在某个测试文件中放置并执行这段代码,它可以正常工作,但不能正常运行,而这段代码应该在该位置。怎么了?为什么我在函数中执行代码时文件中没有数据,但在测试文件中执行时一切正常?

函数代码如下:

const fs = require("fs");

(async () => {
    const test = [
      'test1',
      'test2'
    ]
    fs.writeFile('file.txt', test, {flag: "a"}, err => {
      if (err) throw err
    })

    process.exit(1);
  } catch (e) {
    console.log('error: ', e)
    process.exit(1)
  }
})()

您缺少 try/catch 的“尝试”部分。

您还将在写入文件之前退出脚本。

试试 writeFileSync

const fs = require("fs");

(async() => {
  const test = [
    'test1',
    'test2'
  ]
  try {
    fs.writeFileSync('file.txt', test, {
      flag: "a"
    });
    process.exit(1);
  } catch (e) {
    console.log('error: ', e)
    process.exit(1)
  }
})()