【发布时间】:2016-01-21 13:40:36
【问题描述】:
以下2个代码有区别吗?
myPromise.then(function() {
console.log('success');
}).catch(function() {
console.log('error');
});
myPromise.then(function() {
console.log('success');
}, function() {
console.log('error');
});
我知道then 和catch 返回新的promise 已解决或拒绝,并在回调中返回值。但是我在网上看到了这两个代码,我很好奇这两个代码之间的真正区别。
【问题讨论】:
-
有一个非常简单的区别,fail 会在success 函数的INSTEAD 中调用,catch 会在success 函数之后调用,它也会捕获它的错误
-
@chrmcpn 如果承诺失败,那么它不会调用成功函数,对吗?所以它不会调用 if AFTER 因为它根本不会调用它,因为 promise 本身失败了?
-
@user441521 抱歉,我不是很清楚。我的意思是,如果成功回调中有错误,第一个代码会捕获它,但第二个不会。在原始承诺失败的情况下没有区别。
-
如果没有提供 catch 将兼作第二个“then”函数,并且在两者都被使用的情况下,它将为两者进行错误捕获。 then(success,fail).catch() 将是最强大的。至少,这是我目前的理解
标签: javascript promise