title: Promise { undefined } versus Promise { <pending> }. What is the difference?
body: <p>The following code logs both functions. <strong>testFunc</strong> does not resolved and as a result, the <code>console.log</code> outputs <code>Promise { &lt;pending&gt; }</code>. <strong>testFunc2</strong> does not return and as a result, the <code>console.log</code> outputs <code>Promise { undefined }</code>. What is the difference? I am specifically not resolving or returning.</p>
  
  <p><strong>MDN states the following</strong>:</p>
  
  <blockquote>
    <p>When an async function is called, it returns a Promise. When the async function returns a value, the Promise will be resolved with the returned value.  When the async function throws an exception or some value, the Promise will be rejected with the thrown value.</p>
  </blockquote>
  
  <p><em>Source: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function" rel="nofollow noreferrer">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function</a></em></p>
  
  <pre><code>function testFunc() {
    return new Promise((resolve, reject) =&gt; {
      console.log('I AM A TEST FUNCTION')
    })
  }
  
  async function testFunc2() {
    console.log('I AM A TEST FUNCTION 2')
  }
  console.log(testFunc()) //Promise { &lt;pending&gt; }
  console.log(testFunc2()) //Promise { undefined }
  </code></pre>
  
  <p>Is <code>return new Promise</code> the same as an async function, without the <code>.then</code> method?</p>
  
  <p>Thanks</p>