Entonces, Promises hace que todo sea mucho más limpio y todo, pero ¿cómo extrapolo el final de una cadena de promesas a una función externa?
Por ejemplo:
SomePromise.then(result => { // do stuff here }).catch(err => { // do more stuff here }) SomePromise2.then(result => { // do stuff here }).catch(err => { // do more stuff here }) SomePromise3.then(result => { // do stuff here }).catch(err => { // do more stuff here })De alguna manera, me gustaría extraer el luego y atrapar para poder pasar una función al entonces como tal:
SomePromise.then(handler); SomePromise2.then(handler); SomePromise3.then(handler);Supongo que podría extraer toda la Promesa en una función y pasar parámetros desde y hacia allí, pero eso se siente un poco torpe. ¿Alguna solución elegante?
Editar: debería explicar que me estoy enfocando en la parte de captura. Imagine múltiples consultas diferentes con analizadores de datos y controladores de errores idénticos.
Edición 2: en retrospectiva, ahora me doy cuenta de que podría extrapolar
handler = () => {} errorHandler = () => {} Promise.then(handler) .catch(errorHandler)pero el
let p1=Promise.resolve(1); function handler(data){console.log(data)}; function errorHandler(error){console.log(error)}; p1.then(handler,errorHandler);Múltiples cosas aquí, su código que está esperando es:
SomePromise.then(manejador);
Sin embargo, debería ser en realidad como
controlador de funciones (datos) {}; SomePromise.then((datos)=>handler(datos));