这是一个仅在该目录不存在时才创建目录的函数。这里我使用fs.mkdirSync
函数来创建目录。通常,如果目录创建成功,则此函数返回值undefined
,如果创建失败,则返回错误消息。
我已使用if
条件处理了promise promise和reject方法。在我的home
目录中,没有名为Projects
和test
的目录。当我使用dirName
,/home/srinesh/Projects/test/hello
运行该功能时,在这种情况下createDir
会生成错误。但是我正在努力解决的问题是,错误消息不包含createDir error
字符串,告诉它没有通过promise
的{{1}}函数。最后,我想知道的是如何使用reject
处理Sync
函数的错误。
错误讯息:
promises
守则:
Unhandled rejection Error: ENOENT: no such file or directory, mkdir '/home/dazz/Projects/test/hello'
答案 0 :(得分:0)
fs.mkdirSync
总是返回undefined
,如果出现错误,它会抛出。每当代码抛出时,您可以将fs.mkdirSync
包裹在try-catch
和reject
中,但更优雅的解决方案是使用函数fs.mkdir
的异步版本,如下所示。
var fs = require('fs');
var filePath = __dirname + '/dummyFolder';
var createDir = function (dirName) {
return new Promise(function (resolve, reject) {
var result = fs.mkdir(dirName, (err, folder) => {
if (err) {
reject(err);
} else {
resolve("folder created successfully");
}
});
})
};
var createProject = function (filePath) {
createDir(filePath)
.then(function(val) {
console.log(val);
})
.catch(function(error) {
console.log(error);
});
};
createProject(filePath);