Promise error handling

  1. catch catches both thrown error and promise reject call
  2. In a chain of then error in each step can be handled at the end

Next: Promise APIs