title: What is wrong with this code? It should return [4, 5], however it returns [1, 2, 3, 4, 5]
body: <p>What is wrong with this code? It should return [4, 5], however it returns [1, 2, 3, 4, 5]</p>
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>const numbers = [1, 2, 3, 4, 5];
  
  function applyOperation(n) {
      return new Promise((resolve, reject) =&gt; {        
          setTimeout(() =&gt; resolve(n), 2000)
      });
  }
  
  const res = numbers.filter(async num =&gt; {
      
      return await applyOperation(num) &gt; 3;
  });
  
  console.log(res);</code></pre>
  </div>
  </div>
  </p>