【发布时间】:2015-10-10 00:40:52
【问题描述】:
在我的应用程序中,我试图读取一个文件,然后将该文件的内容写入另一个文件。
我已经使用 bluebird promises 来做到这一点。我需要帮助来确认我对使用 Promise 的理解在我的实现中是正确的。
我的问题是,
在我的示例中,我首先读取文件,然后在文件读取文件后,将内容写入下一个“.then”块中的另一个文件。将内容写入文件后,我需要记录一条消息。我已将其包含在第二个“.then”块中。我需要知道我对承诺的理解是否正确。第二个 '.then' 块会作为 writefile 语句的回调函数吗?
我需要编写更有意义的日志消息。如果在读取文件和写入文件时发生错误,则会出现不同的错误消息。如何使用 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!");
});
});
【问题讨论】:
标签: javascript node.js bluebird