如何捕捉蓝鸟ENOENT?

因为fs.exists的弃用,我喜欢用蓝鸟捕捉ENOENT。

举个例子:

.then(() => { return promisedFs.unlinkAsync(excelPath); }) .catch(ENOENT ERROR, () => { //do something }) .catch(all other errors, () => {//do something}) 

从文档 :

一个被过滤的变体(像其他非JS语言一样)通常只能处理特定的错误。

[…]

只检查属性的谓词函数有一个方便的速记。 代替一个谓词函数,你可以传递一个对象,并且它的属性将被检查一个匹配的错误对象:

 fs.readFileAsync(...) .then(...) .catch({code: 'ENOENT'}, function(e) { console.log("file not found: " + e.path); }); 

在上面的代码( {code: 'ENOENT'} )中传递给.catch的对象谓词是谓词函数function predicate(e) { return isObject(e) && e.code == 'ENOENT' } ,IE平等使用。