Así es como entiendo que la sintaxis de la promesa funcione:
promise.then((value) => { // handle async return }, (error) => { console.log(error); });
La promesa se puede cumplir o rechazar y declaras dos cierres separados por una coma donde el primero maneja el éxito y el segundo maneja el fracaso. Pero todo o la mayor parte del código que veo no usa esta sintaxis; utiliza captura.
promise.then((value) => { // handle async return }).catch((error) => { console.log(error); });
Sin embargo, he leído que catch()
en sí mismo crea una nueva promesa. ¿Es eso cierto? Porque, según tengo entendido, se supone que catch es la parada final de un proceso cuando se produce un error, ¿o funciona de manera diferente en JavaScript?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
SÍ.
p1.then(function(value) { console.log(value); // "Success!" throw new Error('oh, no!'); }).catch(function(e) { console.error(e.message); // "oh, no!" }).then(function(){ console.log('after a catch the chain is restored'); }, function () { console.log('Not fired due to the catch'); });
El valor de retorno de catch es entonces posible.