JS Promises: Fulfill vs Resolve
<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>