Chaining Promises

In the previous exercise, we changed the callback pattern (exhibiting the Christmas tree problem) to this pattern which exhibits promise chaining:

console.log("listening for events"); getUser(1) .then(user => getLoans(user["Account number"])) .then(loans => getTransactions(loans["Most recent"])) .then(transactions => console.log(transactions)); console.log("still listening for events!");

Promise chaining flattens the nested structure of callback hell.

As a good practice, whenever you work with Promises, end the chain with a catch block to catch any errors.

console.log("listening for events"); getUser(1) .then(user => getLoans(user["Account number"])) .then(loans => getTransactions(loans["Most recent"])) .then(transactions => console.log(transactions)) .catch(error => { console.log(error.message); // probably need to do more! }); console.log("still listening for events!");