由于fs.exists弃用,我喜欢在bluebird中捕获ENOENT。
例如:
.then(() => {
return promisedFs.unlinkAsync(excelPath);
})
.catch(ENOENT ERROR, () => { //do something })
.catch(all other errors, () => {//do something})
答案 0 :(得分:3)
来自the docs:
过滤后的变体(就像其他非JS语言一样) 让你只处理特定的错误。
[...]
只检查属性的谓词函数有一个方便的速记。 代替谓词函数,您可以传递一个对象及其对象 将根据匹配的错误对象检查属性:
fs.readFileAsync(...) .then(...) .catch({code: 'ENOENT'}, function(e) { console.log("file not found: " + e.path); });
对象谓词在上面的代码中传递给
.catch
({code: 'ENOENT'}
)是谓词函数的简写function predicate(e) { return isObject(e) && e.code == 'ENOENT' }
, I.E.使用松散的平等。