2016-08-22 77 views
1

由於fs.exists不贊成,我喜歡在藍鳥中捕捉ENOENT。如何抓住藍鳥的ENOENT?

因此,例如:

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

回答

2

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' }, IE使用鬆散的平等。

+0

正是我需要的,謝謝:) – jemiloii