функция require, которая использует цикл ожидания

У меня есть файл, в котором я определил функцию, которая использует цикл for для чтения файла:

      // updater.js
const lineReader = require('readline').createInterface({
  input: fs.createReadStream('./my-file.txt'),
})

const updateFile = async () => {
  // stuff..
  for await (const line of lineReader) {
    // do something...
  }
}

module.exports = {
  updateFile,
}

Функция просто читает файл построчно, ища определенный шаблон, который идентифицирует строку, которую нужно обновить; и сохраняет строку за строкой в ​​другой файл с обновлениями;

дело в том, что это работает корректно, если в конце файла добавитьupdateFile()и выполнить его сnode updater.js

Что я хотел бы сделать, так это потребоватьupdater.jsиз другого скрипта:

      // main.js
const updater = require('./updater')

const start = async () => {
  console.log('start')
  // do stuff...
  await updater.updateFile()

  console.log('end')
}

start()

хорошо, так что это не работает, так как он достигает первого console.log, он входит вupdateFileметод, он выполняется правильно до тех пор, покаfor awaitцикл, затем сценарий завершается без каких-либо ошибок... Я не очень понимаю это поведение, если у кого-то есть какие-то подсказки, я был бы признателен...

0 ответов

Другие вопросы по тегам