checkInventory, processPayment y shipOrder son funciones que devuelven promesas.
Codecademy me dice que esto debería funcionar:
checkInventory(order) .then((resolvedValueArray) => { return processPayment(resolvedValueArray); }) .then((resolvedValueArray) => { return shipOrder(resolvedValueArray); }) .then((successMessage) => { console.log(successMessage); }) .catch((errorMessage) => { console.log(errorMessage); });Pero que esto no debería funcionar:
checkInventory(order) .then(processPayment) .then(shipOrder) .then((successMessage) => { console.log(successMessage); }) .catch((errorMessage) => { console.log(errorMessage); });Sin embargo, ambas piezas de código funcionan y generan lo mismo. ¡Estoy muy confundido!
¿Los dos ejemplos darían resultados diferentes bajo diferentes condiciones? ¿Por qué?
El ejercicio da este código como ejemplo:
firstPromiseFunction() .then((firstResolveVal) => { return secondPromiseFunction(firstResolveVal); }) .then((secondResolveVal) => { console.log(secondResolveVal); });Y dice al respecto:
Para que nuestra cadena funcione correctamente, tuvimos que devolver la promesa secondPromiseFunction(firstResolveVal). Esto aseguró que el valor de retorno del primer .then() fuera nuestra segunda promesa en lugar del retorno predeterminado de una nueva promesa con el mismo valor establecido que el inicial.