【发布时间】:2016-04-23 04:28:10
【问题描述】:
这是一个仅当目录不存在时才创建目录的函数。这里我使用fs.mkdirSync 函数来创建目录。通常,如果目录创建成功,此函数返回值undefined,如果创建失败,则返回错误消息。
我使用if 条件处理了promise resolve 和reject 方法。在我的home 目录中,没有名为Projects 和test 的目录。当我使用dirName、/home/srinesh/Projects/test/hello 运行函数时,在这种情况下createDir 会产生错误。但我正在努力解决的问题是,错误消息不包含createDir error 字符串,这表明它没有通过promise 的reject 函数。最后,我想知道的是如何处理Syncfunction 与promises 的错误。
错误信息:
Unhandled rejection Error: ENOENT: no such file or directory, mkdir '/home/dazz/Projects/test/hello'
代码:
var filePath = '/home/srinesh/Projects/test/hello';
var createDir = function (dirName) {
return new promise(function (resolve, reject) {
var result = fs.mkdirSync(dirName);
if(result == undefined){resolve('folder created successfully!');}
else {reject('createDir error: '+result);}
})
};
var createProject = function (filePath) {
var result = createDir(filePath);
console.log(result);
})
.catch(function (error) {
console.log(error);
});
};
【问题讨论】:
-
您的
createProject是语法错误 - 中间有一个杂散的}),而您调用.catch()什么都没有。它实际上是什么样子的?
标签: javascript node.js promise