title: JS Promises: Fulfill vs Resolve
body: <p>I understand Promises to exist in one of three states: A Promise can either be <strong>pending</strong> (unresolved), <strong>fulfilled</strong> (resolved successfully) or <strong>rejected</strong> (resolved unsuccessfully).</p>
  
  <p>Reading through the <a href="https://github.com/promises-aplus/promises-spec" rel="noreferrer">A+ Promise Spec</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise" rel="noreferrer">MDN's documentation</a>, I am confused that they both acknowledge the <strong>fulfilled</strong> and <strong>rejected</strong> states but in the definition of the Promise constructor they specify two callbacks: <strong>resolve</strong> and <strong>reject</strong>. It seems we're using these two terms interchangeably; they are not.</p>
  
  <p>Does not imply success:</p>
  
  <pre><code>re·solve /rəˈzälv/ verb
  1. settle or find a solution to (a problem, dispute, or contentious matter).
  </code></pre>
  
  <hr>
  
  <p>Does imply success:</p>
  
  <pre><code>ful·fill /fo͝olˈfil/ verb
  1. bring to completion or reality; achieve or realize (something desired, promised, or predicted).
  2. carry out (a task, duty, or role) as required, pledged, or expected.
  </code></pre>
  
  <p>Why are we using <strong>resolve</strong> here when we're actually <strong>fulfill</strong>ing the Promise? Is there an instance in which the value we pass to <strong>resolve</strong> might result in the Promise being <strong>reject</strong>ed?</p>