Я думаю, что вы задаете неправильный вопрос.Если вы проверите в момент времени T, а затем напишите в момент времени T + 1 мс, что будет гарантировать, что файл все еще доступен для записи?
Если файл недоступен для записи по какой-либо причине , запись будетпровал, точка.Нечего делать.Ваш код в порядке, но вы, вероятно, также можете обойтись без fs.writeFileSync()
, который просто сотрет все, что было в файле ранее.
Вы также можете записать в случайно сгенерированный путь к файлу, чтобы удостовериться в достаточной уверенностичто два процесса не пишут в один и тот же файл одновременно, но опять-таки, это не предотвратит все возможные ошибки записи, так что вы действительно хотите действительно хорошую обработку ошибок.
Чтобы правильно обрабатывать ошибки, вы должны предоставить обратный вызов !
Что-то вроде:
excel4nodeWorkbook.write(filePath, (err) => {
if (err) console.error(err);
});
Осторожно, этоасинхронный код, так что вам нужно справиться и с этим!