2017-04-25 56 views
0

如何简化这一说法:简化承诺

Foo.execSomething(k,v).then(function(){/*do nothing*/},(err) => { 
    console.log(err) 
}).catch((err) => { 
    console.log(err) 
}); 

我呼吁那些后缀(从.then开始)很多,我不在乎,如果它成功了,但我不在乎当它失败了,有没有更简单如何做到这一点?

+2

只需删除。然后(...),.catch()会被拒绝或例外。 – Booster2ooo

+0

啊,所以'.then'根本不需要? – Kokizzu

+0

@Kokizzu如评论所述,它什么都不做。 – Bergi

回答

2

Promise Object中的then函数有参数,第一个参数是成功时处理,第二个是处理错误。但不建议在then方法中发现错误。 这两个相同(我用的console.log的错误处理程序):

// first way: 
Promise.reject('error').then(success => {}, err => console.log(err)); 
// console logs "error" 

// second way 
Promise.reject('error').catch(err => console.log(err)); 
// console logs "error" 

// your code 
Promise.reject('error').then(success => {}, err => console.log(err)) 
    .catch(err => console.log(err)) 
// it will prints only a "error" in the console, so there are the same 

所以,如果你不关心,当它成功了,你可以简化你的代码是这样的: Foo.execSomething(k,v).catch(err => console.log)