В моем приложении я пытаюсь прочитать файл, а затем записать содержимое файла в другой файл.
Для этого я использовал обещания bluebird. Мне нужна помощь, чтобы подтвердить правильность моего понимания использования промисов в моей реализации.
Вопросы, которые у меня есть,
В моем примере я сначала читаю файл, затем, как только файл читает файл, я записываю содержимое в другой файл в своем следующем блоке «.then». После того, как содержимое записано в файл, мне нужно зарегистрировать сообщение. Я включил это во второй блок «.then». Мне нужно знать, правильно ли я понимаю обещания. будет ли второй блок «.then» работать как функция обратного вызова для оператора записи файла?
Мне нужно писать более содержательные сообщения журнала. Различные сообщения об ошибках, если ошибка возникает при чтении файла и записи файла. Как я могу сделать это с блоками catch?
Заранее спасибо!
Пример кода ниже.
var Promise = require("bluebird");
var fs = Promise.promisifyAll(require("fs"));
var logger = require("./logger.js")
var projectJSON = require("../project.json");
var harPath = projectJSON.project.harfile.location;
var harFileNames = projectJSON.project.transactions.transactionsName;
var harFilePath;
var harFiles = {};
var writeFilePath = "../temp/"
harFileNames.forEach(function(harFileName){
harFilePath = harPath + "/" + harFileName + ".har";
fs.readFileAsync(harFilePath, "utf-8")
.then(function(data){
fs.writeFile(writeFilePath + harFileName + ".json", data);
test = data;
})
.then(function(){
console.log("data written successfully: ");
})
.catch(function(err){
logger.error("error", "Error reading har files from location!");
});
});