title: passing multiple arguments to promise resolution within setTimeout
body: <p>I was trying to follow along with the MDN <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all" rel="noreferrer">promise.all</a> example but it seems I cannot pass more arguments to the <a href="https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout" rel="noreferrer">setTimeout callback</a>. </p>
  
  <pre><code>var p1 = new Promise((resolve, reject) =&gt; { 
    setTimeout(resolve, 200, 1,2,3); 
  });
  var p2 = new Promise((resolve, reject) =&gt; { 
    setTimeout(resolve, 500, "two"); 
  });
  
  Promise.all([p1, p2]).then(value =&gt; { 
    console.log(value);
  }, reason =&gt; {
    console.log(reason)
  });
  </code></pre>
  
  <p>This prints <code>[1, "two"]</code>, where I would expect <code>[1, 2, 3, "two"]</code>. Doing this with <code>setTimeout</code> without promise fulfillment works as expected</p>
  
  <pre><code>setTimeout(cb, 100, 1, 2, 3);
  function cb(a, b, c){
    console.log(a, b, c);
  }
  //=&gt;1 2 3
  </code></pre>
  
  <p>Why doesn't this work with the promise? How can it be made to work with the promise?</p>