title: Async JS error message: > Uncaught TypeError: (intermediate value)(...) is not a function (more below)
body: <p>I'm using an api to get the capital of a country:</p>
  <pre><code>const whereAmI = async function(country){
      try{
      const response = await fetch(`https://restcountries.eu/rest/v2/name/${country}`);
      
      if (!response.ok) throw new Error(`country not found (${response.status})`);
      
      const data = await response.json()
      
      return data[0]
      
  } catch(error) {
          console.error('something went wrong: ' + error)
        }
  }
  </code></pre>
  <p>It's working fine as long as I do this (it logs the capital and the little message):</p>
  <pre><code>async function test() {
      try{
          const data = await whereAmI('hungary');
          console.log(data.capital)
      } catch (err){
          console.error('async ' + err)
        }
      //finally
          console.log(&quot;finished operation getting city!&quot;)
  }
  
  test()
  </code></pre>
  <p>However, I tried to use an IIFE, which throws me an error message:</p>
  <pre><code>(async function() {
      try{
          const data = await whereAmI('hungary');
          console.log(data.capital)
      } catch (err){
          console.error('async ' + err)
        }
      //finally
          console.log(&quot;finished operation getting city!&quot;)
  })();
  </code></pre>
  <blockquote>
  <p>Uncaught TypeError: (intermediate value)(...) is not a function
  <br>GET
  <a href="https://restcountries.eu/rest/v2/name/async%20function()%20%7B%20%20%20%20try%7B%20%20%20%20%20%20%20%20const%20data%20=%20await%20whereAmI(%27hungary%27);%20%20%20%20%20%20%20%20console.log(data.capital)%20%20%20%20%7D%20catch%20(err)%7B%20%20%20%20%20%20%20%20console.error(%27async%20%27%20+%20err)%20%20%20%20%20%20%7D%20%20%20%20//finally%20%20%20%20%20%20%20%20console.log(%22finished%20operation%20getting%20city!%22)%7D" rel="nofollow noreferrer">https://restcountries.eu/rest/v2/name/async%20function()%20%7B%20%20%20%20try%7B%20%20%20%20%20%20%20%20const%20data%20=%20await%20whereAmI('hungary');%20%20%20%20%20%20%20%20console.log(data.capital)%20%20%20%20%7D%20catch%20(err)%7B%20%20%20%20%20%20%20%20console.error('async%20'%20+%20err)%20%20%20%20%20%20%7D%20%20%20%20//finally%20%20%20%20%20%20%20%20console.log(%22finished%20operation%20getting%20city!%22)%7D</a>
  net::ERR_ABORTED 404</p>
  </blockquote>