【发布时间】:2017-01-19 16:11:32
【问题描述】:
我正在使用节点 4.5+ 和蓝鸟。我有以下代码打算与then一起使用:
var checkdir = function(directory) {
return new Promise(function(resolve, reject) {
fs.statAsync(directory).then(function() {
resolve(true);
}).catch(function(err) {
if(err.code === 'ENOENT') {
fs.mkdirAsync(directory).then(function() {
resolve(true);
}).catch(function() {
reject(new Error('Can not create folder'));
});
} else {
reject(new Error('Unknown fs stat error: ' + err));
}
});
});
};
Async 函数来自fs-extra-promise 模块。但是,当我尝试使用此功能时,我得到Unhandled rejection Error: Unknown error: TypeError: Cannot read property 'then' of undefined。
调用:
checkdir(dir).then(function() {
...
}).catch(function(err) {
reject(new Error('Unknown error: ' + err));
});
这里有什么问题?
【问题讨论】:
-
这很奇怪,您的代码在没有蓝鸟的 sn-p 中运行。你如何实现这个库?
-
错误所指
.then的任何指示(堆栈跟踪)? -
@Tomalak 不确定您的意思,但请随时编辑和修复它。
标签: javascript node.js promise bluebird