Jordan Savant # Software Engineer

/*
 * A single promise can pass through several chained
 * `then` statements because `then` returns a promise
 * as well
 */
new Promise((resolve, reject) => {
  console.log("new Promise A")
  reject("error statement")
  // same as throw new Error("error statement")
  resolve(2) // wont run
}).then((data) => {
  // wont run
  console.log(`A ${data}`);
  return data * 2
}).then((data) => {
  // wont run
  console.log(`B ${data}`);
  return data * 2
}).catch((error) => {
  console.warn(`ERROR A: ${error}`)
}).catch((error) => {
  // would only run if the previous catch threw an error
  console.warn(`ERROR B: ${error}`)
})