如何简化这一说法:简化承诺
Foo.execSomething(k,v).then(function(){/*do nothing*/},(err) => {
console.log(err)
}).catch((err) => {
console.log(err)
});
我呼吁那些后缀(从.then
开始)很多,我不在乎,如果它成功了,但我不在乎当它失败了,有没有更简单如何做到这一点?
如何简化这一说法:简化承诺
Foo.execSomething(k,v).then(function(){/*do nothing*/},(err) => {
console.log(err)
}).catch((err) => {
console.log(err)
});
我呼吁那些后缀(从.then
开始)很多,我不在乎,如果它成功了,但我不在乎当它失败了,有没有更简单如何做到这一点?
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)
只是如何使用catch函数?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
掣子()方法返回一个承诺与仅拒绝情况下的交易。它的行为与调用Promise.prototype.then(undefined,onRejected)相同。
只需删除。然后(...),.catch()会被拒绝或例外。 – Booster2ooo
啊,所以'.then'根本不需要? – Kokizzu
@Kokizzu如评论所述,它什么都不做。 – Bergi