title: About Promise chain in ES6
body: <p>I got confusion about Promise chain in ES6.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>function taskA() {
    console.log("Task A");
    throw new Error("throw Error @ Task A")
  }
  
  function taskB() {
    console.log("Task B");
  }
  
  function onRejected(error) {
  ￼￼￼  console.log(error);// =&gt; "throw Error @ Task A" 
  }
    
  function finalTask() { 
    console.log("Final Task");
  }
  
  var promise = Promise.resolve(); 
  promise
  .then(taskA) 
  .then(taskB) 
  .catch(onRejected) 
  .then(finalTask);</code></pre>
  </div>
  </div>
  </p>
  
  <p>What I'm lost here is why <code>finalTask</code> will be called? Does the <code>catch()</code> chain returns a resolved Promise?</p>