Promesse: puis vs puis + catch

Y a-t-il une différence entre les 2 codes suivants?

myPromise.then(function() { console.log('success'); }).catch(function() { console.log('error'); }); myPromise.then(function() { console.log('success'); }, function() { console.log('error'); }); 

Je le sais then et catch retours de nouvelles promesses résolues ou rejetées avec les retours de valeur dans le rappel. Mais je vois les 2 codes sur le Web et je suis curieux des différences réelles entre les 2 codes.

Dans votre code actuel, ils agissent de la même manière car console.log('success'); Ne manquera pas.

Cependant, si vous écrivez quelque chose comme ça …

 myPromise.then(function() { // Some error may happen }).catch(function() { console.log('error'); }); // Is the same as this, the errHandle tries to catch any unhandled error // from previous result. myPromise.then(func, null).then(null, errHandle); myPromise.then(function() { // Some error may happen }, function() { // This won't log the error if it happens in the // some error may happen block. console.log('error'); }); // Is the same as this, the errHandle will handle errors from previous result, // but it won't handle errs in func. myPromise.then(func, errHandle) 

La deuxième forme ne peut pas attraper cette erreur, alors que la première peut.

Je suppose que cela dépend de la façon dont la promesse est mise en œuvre. Pour autant que je sache, jQuery l'implémente de manière différente .

Le second que vous avez donné semble être la version jQuery.