In addition to what Tab said, it produces a Promise for an iterable (that
happens to be an array), so it makes perfect sense that it takes an
iterable of the same number of items, so there's a 1-1 mapping.

On Fri, Aug 10, 2018 at 3:02 PM, Tab Atkins Jr. <[email protected]>
wrote:

> On Fri, Aug 10, 2018 at 2:30 PM Jacob Pratt <[email protected]> wrote:
> > This is potentially a very simple question, `Promise.all()` takes a
> single iterable as a parameter. Is there any particularly reason it wasn't
> overloaded to allow passing multiple parameters (and use `...arguments`)?
> Of course, the only difference is the creation of an array, but it is an
> array that doesn't need to be created.
>
> API complexity - Promise.all()'s promise resolves to an array of
> resolved values. How would multiple input iterables be reflected here?
> Just concatenated together? More straightforward and predictable to
> just ask the user to concatenate things on the input side.
>
> Also, Promise.all(), following the example of other promise methods,
> doesn't require the values in the input array to be promises; it just
> Promise.resolve()'s all of them, so you can pass in non-Promise values
> as well.  With a "multiple input arguments" API shape, it's less clear
> that `Promise.all("foo", "bar")` is wrong, for instance (it would
> treat each of them as a 3-element array of characters).  With the
> current design you usually have to put in a literal [], so it's easier
> to remember the API shape.
>
> ~TJ
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to