функция 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
цикл, затем сценарий завершается без каких-либо ошибок... Я не очень понимаю это поведение, если у кого-то есть какие-то подсказки, я был бы признателен...