У меня есть программа Node v10.14.1, которая построчно читает файл CSV, используя интерфейс readline
My .on('line')
- это обратный вызов async
, выполняющий некоторые операции чтения / записи из БД, поэтому я использую async/await
для обработки обещаний.
Короткая версия интересующего вас блока кода программы будет выглядеть примерно так:
const readline = require('readline');
const filesystem = require('fs');
const reader = readline.createInterface({
input: filesystem.createReadStream(pathToSomeCSV)
});
reader.on('line', async (line) => {
await doSomeDBStuff();
})
Если я оставлю вышеизложенное таким, какой он есть, процесс не завершится. Однако, если я
reader.on('close', () => {process.exit()});
затем процесс завершается до завершения всех обратных вызовов on('line')
и разрешения их обещаний.
У меня вопрос: есть ли способ сказать: «После прочтения всех строк И завершения всех обратных вызовов on('line')
с их обещаниями, а затем выйти из процесса (я полагаю с process.exit()
)»?