Object literal (hash) with Promise.all
<p>I have a situation where it would be quite convenient to use <code>Promise.all</code> like so <code>Promise.all({})</code> instead of the more standard Promise.all([]).</p>

<p>but this doesn't seem to work</p>

<pre><code>Promise.all({a:1,b:2}).then(function(val){
   console.log('val:',val);
});
</code></pre>

<p>whilst this does of course</p>

<pre><code>Promise.all([1,2,3]).then(function(val){
   console.log('val:',val);
});
</code></pre>

<p>(what I would expect would be for Promise.all to map the values of the Object literal, but leave the keys intact.)</p>

<p>But <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all" rel="noreferrer">the MDN docs for Promise</a> seem to indicate that Promise all will work for any iterable. To my knowledge, an object literal <code>{}</code> is an iterable. So what am I missing?</p>